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)

libdispatch-legacy-fail-leopard-ppc.log (1007.1 KB) - added by kencu (Ken) 7 months ago.

Download all attachments as: .zip

Change History (4)

Changed 7 months ago by kencu (Ken)

comment:1 Changed 7 months ago by barracuda156

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?

comment:2 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.

Last edited 7 months ago by kencu (Ken) (previous) (diff)

comment:3 in reply to:  2 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.

Note: See TracTickets for help on using tickets.