[MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
------------------------------+-------------------
 Reporter:  devernay          |      Owner:
     Type:  defect            |     Status:  new
 Priority:  Normal            |  Milestone:
Component:  ports             |    Version:
 Keywords:  i386 snowleopard  |       Port:  boost
------------------------------+-------------------
 I installed `boost @1.66.0_0+no_single+no_static+python27+universal` on a
 libc++-based snow leopard (10.6) system, building with macports-clang-5.0,
 and it seems that installed libraries do not contain any i386 symbols:
 {{{
 root@mistral:~$ file /opt/local/lib/libboost_regex-mt.dylib
 /opt/local/lib/libboost_regex-mt.dylib: Mach-O universal binary with 2
 architectures
 /opt/local/lib/libboost_regex-mt.dylib (for architecture i386): Mach-O
 dynamically linked shared library i386
 /opt/local/lib/libboost_regex-mt.dylib (for architecture x86_64):
 Mach-O 64-bit dynamically linked shared library x86_64
 $ nm -arch i386 /opt/local/lib/libboost_regex-mt.dylib
          U dyld_stub_binder
 $ nm -arch x86_64 /opt/local/lib/libboost_regex-mt.dylib
 0000000000099c50 s GCC_except_table0
 0000000000099e08 s GCC_except_table0
 0000000000099f04 s GCC_except_table0
 ... (lots of symbols)
 }}}

 reinstalling didn't fix this.

 `boost@1.65.1_3+no_single+no_static+python27+universal` had no issue.

 Cc-ing kencu who may be able to test this on his system.

--
Ticket URL: <https://trac.macports.org/ticket/55857>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386 snowleopard
      Port:  boost     |
-----------------------+------------------------------

Comment (by kencu):

 see this bit in the Portfile:
 {{{
 # clang++ produces broken boost libraries
 (https://trac.macports.org/ticket/31525)
 # If Apple's clang is used on 32-bit systems, it seems to silently ignore
 the '-march=i386' flag.
 # (https://trac.macports.org/ticket/38157)
 compiler.blacklist {clang < 421} *llvm-gcc-4.2 *gcc-4.0 gcc-3.3
 }}}

 probably more info in [ticket:31525]

 I'm not sure if I've ever built boost +universal on this system...

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------
Changes (by ryandesign):

 * keywords:  i386 snowleopard => i386


Comment:

 Replying to [ticket:55857 devernay]:
 > it seems that installed libraries do not contain any i386 symbols

 Ok, so I'm not crazy. I noticed the same on Sierra yesterday.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by kencu):

 see also [ticket:38157] and [ticket:35172]

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by devernay):

 I examined the main.log from boost 1.65.1 and boost 1.66, and found out
 that in the boost 1.66 build the arch flags are only passed at link time,
 but not at compile time.
 boost 1.65.1_3 passes the arch flags both at compile time and at link
 time.
 So this is not a compiler issue, but rather a build issue.

 I managed to build a universal boost 1.66.0 by manually adding "-arch i386
 -arch x86_64" to  the write_jam line in the Portfile.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:4>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by devernay):

 This is an upstream bug (I tried building boost from source and got the
 same result).
 Filed as https://svn.boost.org/trac10/ticket/13454

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by michaelld):

 Nice debugging! Anyone have any idea how to fix this issue? Looks like
 reverting some Boost commit or some such, but which one(s)? A quick search
 on the Boost repo between 1.65.1 and 1.66.0 doesn't turn up anything
 definitive (at least in my reading).

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:6>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by devernay):

 As mentionned above, a dirty hack to build universal is to add ourselves
 the arch flags to the cxxflags in the right write_jam line in the
 Portfile.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:7>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by ryandesign):

 Replying to [comment:6 michaelld]:
 > Looks like reverting some Boost commit or some such, but which one(s)? A
 quick search on the Boost repo between 1.65.1 and 1.66.0 doesn't turn up
 anything definitive (at least in my reading).

 The
 [https://github.com/boostorg/build/commit/4f5233911c2cc5a1b8f124eff11a0345ad5b5e7c
 two]
 [https://github.com/boostorg/build/commit/f9c88a635c329f152493c29991d03ef2f6efc029
 commits] to builtin.jam that occurred after the release of boost 1.65.1
 are huge and refactor a lot of stuff. Perhaps a mistake was made. It might
 be worth testing whether reverting one or both of those commits fixes the
 problem.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:8>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by michaelld):

 Yeah true it's hard to tell with those commits. Maybe they'll fix the
 issue & release 1.66.1 sooner rather than later ;)  [so that we don't have
 to go this route to fix the issue]

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:9>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by kencu):

 I am new to boost, but it looks to me like the `-arch` flags for darwin
 are added in the subroutine `setup-address-model` in this file:

 <https://github.com/boostorg/build/blob/0d0c656c1164efbfe8568a09353f374839c26ac4/src/tools/darwin.jam>

 I note there are rules that call this subroutine for compiling *.m and
 *.mm files in that darwin.jam file, and rules that call this subroutine
 for linking, but I don't see any rules for calling it when compiling *.c
 and *.cpp files.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:10>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by kencu):

 there is also this file

 <https://github.com/boostorg/build/blob/0d0c656c1164efbfe8568a09353f374839c26ac4/src/tools
 /clang-darwin.jam>

 that seems to be related to calling clang on darwin for the build, but
 there is no `setup-address-model` in that file at all.

 So, I wonder if adding some entries for `compile.c` and `compile.c++`
 similar to the ones for `compile.m` to `src/tools/darwin.jam` to call
 `setup-address-model` might be fruitful...

 Alternatively, if that didn't work, adding `setup-address-model` to to
 `src/tools/clang-darwin.jam` might be a fallback idea.

 I assume these cascade on each other, though.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:11>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------

Comment (by MarcusCalhoun-Lopez):

 Based on the
 [https://github.com/boostorg/build/blob/75beb798ab1f71bb3b93ba2cbc79be371881b55a/src/tools/gcc.jam#L375
 comment in gcc.jam],
 {{{
             # For darwin, the model can be 32_64. darwin.jam will handle
 that
             # on its own.
 }}}
 I believe [https://trac.macports.org/ticket/55857#comment:11 Ken is
 correct] that the {{{setup-address-model}}} in
 [https://github.com/boostorg/build/blob/0dacbc3df69fbbb443f1ecaa0ee57c0157d47843/src/tools/darwin.jam#L419
 clang.jam] was supposed to override
 the {{{setup-address-model}}} in
 [https://github.com/boostorg/build/commit/dcc5f627fda7597d1d9d161abbb68be75d708912
 #diff-c4f35dd145d0f08ea267afbf86acbefbL442 gcc.jam].[[BR]]
 {{{setup-address-mode}}} was changed to {{{set-address-model-options}}},
 however, and gcc.jam now calls {{{gcc.set-address-model-options}}} in
 [https://github.com/boostorg/build/commit/dcc5f627fda7597d1d9d161abbb68be75d708912
 this changeset].

 I am not sure trying to fix the current version of boost is a good use of
 time since the address model code has
 [https://github.com/boostorg/build/commit/12decb3ce680031b915f69902795eec47224fc7d
 #diff-c4f35dd145d0f08ea267afbf86acbefb undergone significant changes]
 since version 1.66 was released.

 Following comment:7, I have attached a patch that adds the arch flags
 manually.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:12>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386
      Port:  boost     |
-----------------------+------------------
Changes (by MarcusCalhoun-Lopez):

 * Attachment "Portfile.diff" added.


--
Ticket URL: <https://trac.macports.org/ticket/55857>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------
Changes (by MarcusCalhoun-Lopez):

 * keywords:  i386 => i386 haspatch


--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:14>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------

Comment (by michaelld):

 I like this workaround. I'll test locally & report back; other dev folks:
 please do the same.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:15>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:  ryandesign
      Type:  defect    |     Status:  accepted
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:            |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------
Changes (by ryandesign):

 * cc: ryandesign@…, michaelld@…, kencu@… (removed)
 * cc: michaelld, kencu (added)
 * owner:   => ryandesign
 * status:  new => accepted


Comment:

 Thanks, it works, but `-arch` flags should always be used, not just when
 building universal. I'll commit a revised version in a moment.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:16>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:  ryandesign
      Type:  defect    |     Status:  closed
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:  fixed     |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------
Changes (by ryandesign):

 * status:  accepted => closed
 * resolution:   => fixed


Comment:

 In [changeset:"e9f6257913f62fc441befc62811e1d0b7ea95d70/macports-ports"
 e9f6257913f62fc441befc62811e1d0b7ea95d70/macports-ports]:
 {{{
 #!ConfigurableCommitTicketReference repository="macports-ports"
 revision="e9f6257913f62fc441befc62811e1d0b7ea95d70"
 boost: Use -arch flags; fixes universal variant

 Closes: https://trac.macports.org/ticket/55857
 }}}

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:17>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:  ryandesign
      Type:  defect    |     Status:  closed
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:  fixed     |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------

Comment (by kencu):

 boost is rebuilding, but I'm not seeing any -arch flags in the *.cpp files
 ...
 {{{
     "/opt/local/bin/clang++-mp-3.7"   -Os -stdlib=libc++  -stdlib=libc++
 -O3 -Wall -dynamic -gdwarf-2 -fexceptions -Wno-inline -fPIC -m64
 -Winvalid-pch -DBOOST_ALL_NO_LIB=1 -DBOOST_BUILD_PCH_ENABLED
 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I"bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/../src/tr1" -I"."
 -I"libs/math/src/tr1" -c -o "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/nextafterl.o"
 "libs/math/build/../src/tr1/nextafterl.cpp"
 }}}
 although they are there for the link
 {{{
     "/opt/local/bin/clang++-mp-3.7" -dynamiclib -Wl,-single_module
 -install_name "/opt/local/lib/libboost_math_c99l-mt.dylib"  -o "stage/lib
 /libboost_math_c99l-mt.dylib" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/acoshl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/asinhl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/atanhl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/cbrtl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/copysignl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/erfcl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/erfl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/expm1l.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/fmaxl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/fminl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/fpclassifyl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/hypotl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/lgammal.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/llroundl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/log1pl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/lroundl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/nextafterl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/nexttowardl.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/roundl.o"
 "bin.v2/libs/math/build/darwin-darwin-4.2.1/release/threadapi-pthread
 /threading-multi/tgammal.o" "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/truncl.o"
 -headerpad_max_install_names -Wl,-dead_strip
 -no_dead_strip_inits_and_terms -L/opt/local/lib
 -Wl,-headerpad_max_install_names -stdlib=libc++ -fPIC -m64 -arch x86_64
 -undefined dynamic_lookup
 }}}

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:18>
MacPorts <https://www.macports.org/>
Ports system for macOS
Reply | Threaded
Open this post in threaded view
|

Re: [MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts
In reply to this post by MacPorts
#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:  ryandesign
      Type:  defect    |     Status:  closed
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:  fixed     |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------

Comment (by ryandesign):

 Replying to [comment:18 kencu]:
 > boost is rebuilding, but I'm not seeing any -arch flags in the *.cpp
 files ...
 > {{{
 >     "/opt/local/bin/clang++-mp-3.7"   -Os -stdlib=libc++  -stdlib=libc++
 -O3 -Wall -dynamic -gdwarf-2 -fexceptions -Wno-inline -fPIC -m64
 -Winvalid-pch -DBOOST_ALL_NO_LIB=1 -DBOOST_BUILD_PCH_ENABLED
 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I"bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/../src/tr1" -I"."
 -I"libs/math/src/tr1" -c -o "bin.v2/libs/math/build/darwin-
 darwin-4.2.1/release/threadapi-pthread/threading-multi/nextafterl.o"
 "libs/math/build/../src/tr1/nextafterl.cpp"
 > }}}

 But note that `-m64` ''does'' appear. I assumed that this and the other
 few compiler invocations that use `-m64` but not `-arch` flags are used at
 build time only and are not installed.

 I confirmed before committing that the universal build worked correctly
 (i.e. other universal ports that use boost that had failed to build before
 the change due to undefined i386 symbols now build successfully).

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:19>
MacPorts <https://www.macports.org/>
Ports system for macOS
12