Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#17174 closed defect (duplicate)

Python _scproxy build fails on Yosemite

Reported by: vbraun Owned by:
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: packages: standard Keywords: yosemite
Cc: Merged in:
Authors: Reviewers: John Palmieri
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

GitHub link to the corresponding issue


This Python module is required by Cython, so its not an option to let it fail

In file included from /usr/include/dispatch/dispatch.h:51:0,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:15,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFPropertyList.h:13,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:55,
                 from /System/Library/Frameworks/SystemConfiguration.framework/Headers/SystemConfiguration.h:29,
                 from ./Mac/Modules/_scproxy.c:6:
/usr/include/dispatch/object.h:143:15: error: expected identifier or '(' before '^' token
 typedef void (^dispatch_block_t)(void);
/usr/include/dispatch/object.h:362:3: error: unknown type name 'dispatch_block_t'
   dispatch_block_t notification_block);
./Mac/Modules/_scproxy.c: In function 'get_proxy_settings':
./Mac/Modules/_scproxy.c:67:50: warning: the comparison will always evaluate as 'true' for the address of 'kSCPropNetProxiesExcludeSimpleHostnames' will never be NULL [-Waddress]
     if (&kSCPropNetProxiesExcludeSimpleHostnames != NULL) {

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             dl                 gdbm            
imageop            linuxaudiodev      ossaudiodev     
spwd               sunaudiodev                        
To find the necessary bits, look in in detect_modules() for the module's name.

Failed to build these modules:

Change History (7)

comment:1 Changed 8 years ago by vbraun

Offending line:

typedef void (^dispatch_block_t)(void);

Other objc bits are in #if blocks, but this (and some following stuff) is not.

comment:2 Changed 8 years ago by vbraun

Simply replacing it with typedef dispatch_block_t void; works for Python, but then R blows up when it tries to build its OSX interface.

comment:3 Changed 8 years ago by vbraun

Using void* works, I have added that as a hack at #17169. This at least fixes compilation.

comment:4 Changed 8 years ago by vbraun

Milestone: sage-6.4sage-duplicate/invalid/wontfix
Status: newneeds_review

Fixed by the C header hack in #17169, propose to close as duplicate

comment:5 Changed 8 years ago by jhpalmieri

Reviewers: John Palmieri
Status: needs_reviewpositive_review

comment:6 Changed 8 years ago by vbraun

Resolution: duplicate
Status: positive_reviewclosed

comment:7 Changed 8 years ago by kcrisman

Just for reference, apparently at least one person has been hit with this in Sage 6.7, though I assume they were not using the Sage gcc (?).

Note: See TracTickets for help on using tickets.