Opened 7 months ago
Last modified 7 months ago
#69796 assigned defect
libdispatch-legacy @84.5.5_2: build fails on Leopard PPC with many missing functions
Reported by: | kencu (Ken) | Owned by: | barracuda156 |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | libdispatch-legacy |
Description
Just to record this here for anyone who might try to build libdispatch-legacy, there are a number of build errors on 10.5 PPC at least, eg:
:info:build /Developer/usr/bin/gcc-4.2 -x c -arch ppc -fmessage-length=0 -pipe -Wno-trigraphs -Os -Werror -Wmissing-prototypes -Wreturn-type -Wunused-variable -Wshadow -Wnewline-eof -Wshorten-64-to-32 -D__DARWIN_NON_CANCELABLE=1 -fstrict-aliasing -mtune=G4 -fvisibility=hidden -mmacosx-version-min=10.5 -gdwarf-2 -iquote /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/libdispatch-generated-files.hmap -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/libdispatch-own-target-headers.hmap -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/libdispatch-all-target-headers.hmap -iquote /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/libdispatch-project-headers.hmap -Wall -Wextra -Waggregate-return -Wfloat-equal -Wpacked -Wmissing-declarations -Wstrict-overflow=4 -Wstrict-aliasing=2 -F/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/Release -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/Release/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/DerivedSources/ppc -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/DerivedSources -fno-unwind-tables -fno-exceptions -I/System/Library/Frameworks/System.framework/PrivateHeaders -fdiagnostics-show-option -fsched-interblock -freorder-blocks -DPRIVATE -I../Libc-594.9.5/pthreads -I../libclosure-38 -I../xnu-1504.15.3/libkern -pg -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c -o /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/build/libdispatch.build/Release/libdispatch.build/Objects-profile/ppc/semaphore.o :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘_dispatch_get_thread_semaphore’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:52: error: ‘dispatch_semaphore_create’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.h:61) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘_dispatch_put_thread_semaphore’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:66: error: ‘dispatch_release’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/object.h:91) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘dispatch_group_create’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:73: error: ‘dispatch_semaphore_create’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.h:61) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘dispatch_semaphore_create’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:95: error: ‘dispatch_get_global_queue’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/queue.h:402) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘dispatch_group_enter’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:222: error: ‘dispatch_semaphore_wait’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.h:86) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘dispatch_group_leave’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:287: error: ‘dispatch_semaphore_signal’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.h:108) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘_dispatch_group_wake’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:345: error: ‘dispatch_async_f’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/queue.h:180) :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c: In function ‘dispatch_group_async_f’: :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:522: error: ‘dispatch_group_enter’ is unavailable (declared at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/semaphore.c:199)
also, looks like it needs blocks functionality as well:
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libdispatch-legacy/libdispatch-legacy/work/libdispatch-84.5.5/src/source.c:1767: error: expected expression before ‘^’ token
Attachments (1)
Change History (4)
Changed 7 months ago by kencu (Ken)
Attachment: | libdispatch-legacy-fail-leopard-ppc.log added |
---|
comment:1 Changed 7 months ago by barracuda156
comment:2 follow-up: 3 Changed 7 months ago by kencu (Ken)
An old version of libdispatch used blocks, but a newer version dropped that requirement? That would be very odd Apple behaviour, indeed.
I put this up here as it is inevitable someone will try to build this and have it fail, so we might as well point them to this ticket as a "known issue" before people go off about it.
comment:3 Changed 7 months ago by barracuda156
Replying to kencu:
An old version of libdispatch used blocks, but a newer version dropped that requirement? That would be very odd Apple behaviour, indeed.
Yes, as far as I can see this is gone from 10.6.x releases: https://github.com/barracuda156/10.6-PowerPC-SDKs/blob/1aee512fbbb7949fc33d4668eec429c73cc2b2ff/MacOSX10.6.sdk/usr/include/dispatch/dispatch.h#L12-L14
So it will err out on 10a190, but it works fine if newer headers are used.
From various third-party implementations I got an impression that blocks support is desirable but not required for dispatch to work.
However, Libc and libpthreads is a concern on 10.5.
Thank you, Ken, for opening this. I hope we can fix it for 10.5 eventually (including
ppc64
, in an ideal case).I have noticed that block-looking thing, but despite that it builds fine on 10.6 ppc, where Xcode gcc does not support blocks (it might support something partly, but it errs out on old version of dispatch headers which do require blocks – something which was dropped in released 10.6.x). It could be that 10.5 tries to build a different target, which uses an older version of headers.
Re unavailable functions: those should be available in supplied sources in fact, since the build uses sources for
Libc
etc. from 10.6. Maybe-mmacosx-version-min=10.5
breaks the build, since headers prevent 10.6 stuff from being included?