Opened 2 years ago

Last modified 8 months ago

#66006 assigned defect

Boost universal variant broken for GCC

Reported by: barracuda156 Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: powerpc, leopard, ppc64 Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), cooljeanius (Eric Gallager)
Port: boost

Description

The current realization of universal variant of Boost is broken with GCC. Since it requires newer GCC than Apple, muniversal PG has to be used (at least for GCC builds). However even adding PG does not help, single configure done (for ppc), and double archs are passed on command line, which obviously cannot work. Like this:

    "/opt/local/bin/g++-mp-11"   -fvisibility-inlines-hidden -Os -std=gnu++11 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -arch ppc64  -fPIC -O3 -Wall -fvisibility=hidden -dynamic -gdwarf-2 -fexceptions -Wno-inline -ftemplate-depth-255 -fvisibility=hidden -fvisibility-inlines-hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_SERIALIZATION_DYN_LINK=1 -DNDEBUG  -I"."  -c -o "bin.v2/libs/serialization/build/darwin-11.3.0/release/address-model-32_64/pch-off/threading-multi/visibility-hidden/basic_iarchive.o" "libs/serialization/src/basic_iarchive.cpp"

g++-mp-11: warning: ppc64 conflicts with ppc (arch flags ignored)

Change History (5)

comment:1 Changed 2 years ago by kencu (Ken)

boost is it's own very complicated animal.

look through the source for "jam" files and look at the Portfile for how these are hacked to do MacPorts' bidding.

It is frankly very complicated sometimes to make boost obey.

Only someone running such a system would have any chance of getting it to work, so most others will be unlikely to help.

I never tried building it ppc/ppc64.

It may only be fixed when newer gcc versions have a newer driverdriver.c updated to work like clang works.

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:2 in reply to:  1 Changed 2 years ago by barracuda156

Replying to kencu:

boost is it's own very complicated animal.

look through the source for "jam" files and look at the Portfile for how these are hacked to do MacPorts' bidding.

It is frankly very complicated sometimes to make boost obey.

Only someone running such a system would have any chance of getting it to work, so most others will be unlikely to help.

I never tried building it ppc/ppc64.

It may only be fixed when newer gcc versions have a newer driverdriver.c updated to work like clang works.

Will you help me to work on driverdriver.c? :)

We know Iain is too busy, so I cannot bother his too much even with GCC-related matters.

comment:3 Changed 23 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez added

comment:4 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

In c8c31e5a15cc39ffc76898f5da65f39decf783da/macports-ports (master):

boost: enable universal build except for ppc

See #66006

comment:5 Changed 8 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.