Opened 9 years ago

Closed 9 years ago

#47996 closed defect (fixed)

libgcc @5.1.0_1: build fails with clang from Xcode 4.0.1 (out-of-line definition of '...' does not match any declaration in '...')

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mww@…
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc: BjarneDMat
Port: gcc5

Description

libgcc @5.1.0_1 fails to build on OS X 10.6 with the old version of clang in Xcode 4.0.1, but works with MacPorts clang 3.4: https://lists.macosforge.org/pipermail/macports-dev/2015-June/030778.html

:info:build In file included from /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/genmatch.c:32:
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1047:43: error: out-of-line definition of 'traverse_noresize' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 0>'
:info:build hash_table<Descriptor, Allocator, false>::traverse_noresize (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1073:43: error: out-of-line definition of 'traverse' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 0>'
:info:build hash_table<Descriptor, Allocator, false>::traverse (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1623:42: error: out-of-line definition of 'traverse_noresize' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 1>'
:info:build hash_table<Descriptor, Allocator, true>::traverse_noresize (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1649:42: error: out-of-line definition of 'traverse' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 1>'
:info:build hash_table<Descriptor, Allocator, true>::traverse (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

So we should blacklist old clang, using the compiler_blacklist_versions portgroup. We should test whether the clang from Xcode versions 4.2, 4.1 or 4.0.2 works, so that we'll know how far back the clang blacklist needs to go. We'll also have to see which of the gcc ports need this blacklist.

Attachments (1)

macmini2,1-libgcc-main.log.bz2 (23.3 KB) - added by ryandesign (Ryan Carsten Schmidt) 9 years ago.

Download all attachments as: .zip

Change History (3)

Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Forcing the use of clang from Xcode 3.2.6, configure fails with:

cc1plus: error: unrecognized command line option "-Wno-narrowing"

Also, I confirmed the issue with Xcode 4.2 with libgcc @5.1.0 and libgcc-devel @6-20150531.

Now building libgcc with macports-clang-3.4. Will then check gcc6, gcc5, gcc49.

Last edited 9 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: macintosh@… added
Resolution: fixed
Status: newclosed

Confirmed issue with gcc5 @5.1.0 and gcc6 @6-20150531. Issue not present with gcc49 @4.9.2.

Blacklisted clang from Xcode 4.2 and earlier in gcc5 and gcc6 in r137376.

Note: See TracTickets for help on using tickets.