octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #57049] Mac build failure: CFLocaleCopyCurrent


From: Andrew Janke
Subject: [Octave-bug-tracker] [bug #57049] Mac build failure: CFLocaleCopyCurrent from CoreFoundation not found
Date: Tue, 15 Oct 2019 18:24:17 -0400 (EDT)
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0

Follow-up Comment #11, bug #57049 (project octave):

Well, I can't actually reproduce the build failure outside of brew. I'm
building it directly using my wrapper scripts at
https://github.com/apjanke/octave-build. But the link step is succeeding when
I do that.

There's a couple differences in what libtool is doing in the two cases. When
building inside Homebrew, it's using clang++ as its compiler command. When
building outside Homebrew, it's using g++. And outside Homebrew, this gets
added to the link step command:


-Wl,-undefined -Wl,dynamic_lookup 


If I understand that right, it allows you to build a dylib file with some
dangling unresolved symbols that get resolved at library load time. That could
well be why the build succeeds in this case, where it fails under Homebrew
which is doing stricter linkage.

I don't know why this extra `-undefined dynamic_lookup` is being included in
the build in the non-brewed case.

Failed command from a brewed build:


libtool: link: 
clang++ 
-std=gnu++11
-dynamiclib 
-o liboctave/.libs/liboctave.7.dylib 
liboctave/.libs/liboctave_la-liboctave-build-info.o
liboctave/.libs/liboctave_la-version.o
-Wl,-force_load,liboctave/array/.libs/libarray.a 
-Wl,-force_load,liboctave/external/blas-xtra/.libs/libxerbla.a 
-Wl,-force_load,liboctave/external/ranlib/.libs/libranlib.a 
-Wl,-force_load,liboctave/external/.libs/libexternal.a 
-Wl,-force_load,liboctave/numeric/.libs/libnumeric.a 
-Wl,-force_load,liboctave/operators/.libs/liboperators.a 
-Wl,-force_load,liboctave/system/.libs/libsystem.a 
-Wl,-force_load,liboctave/util/.libs/libutil.a 
-Wl,-force_load,liboctave/wrappers/.libs/libwrappers.a 
-Wl,-force_load,libgnu/.libs/libgnu.a  
-L/usr/local/Cellar/arpack/3.7.0_3/libexec/lib 
-L/usr/local/Cellar/fftw/3.3.8_1/lib 
-L/usr/local/Cellar/pcre/8.43/lib 
-L/usr/local/opt/qscintilla2/lib 
-lcurl -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse
-lsuitesparseconfig 
/usr/local/Cellar/arpack/3.7.0_3/libexec/lib/libarpack.dylib 
-L/usr/local/opt/openblas/lib 
-lopenblas 
-lqrupdate 
-lfftw3_threads -lfftw3 -lfftw3f_threads -lfftw3f 
-L/usr/local/opt/veclibfort/lib 
-lvecLibFort -lreadline -lncurses -lpcre -ldl 
-L/usr/local/Cellar/gcc/9.2.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.2.0 
-L/usr/local/Cellar/gcc/9.2.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.2.0/../../..

-lgfortran -lquadmath -liconv -lm  
-pthread 
-F/usr/local/opt/qt/lib   
-pthread 
-install_name 
/usr/local/Cellar/octave-default/default/lib/octave/6.0.0/liboctave.7.dylib
-compatibility_version 8 
-current_version 8.0 
-Wl,-single_module


Successful command outside brew:


libtool: link: 
g++ 
-std=gnu++11 
-dynamiclib 
-Wl,-undefined 
-Wl,dynamic_lookup 
-o liboctave/.libs/liboctave.7.dylib  
liboctave/.libs/liboctave_la-liboctave-build-info.o 
liboctave/.libs/liboctave_la-version.o   
-Wl,-force_load,liboctave/array/.libs/libarray.a 
-Wl,-force_load,liboctave/external/blas-xtra/.libs/libxerbla.a 
-Wl,-force_load,liboctave/external/ranlib/.libs/libranlib.a 
-Wl,-force_load,liboctave/external/.libs/libexternal.a 
-Wl,-force_load,liboctave/numeric/.libs/libnumeric.a 
-Wl,-force_load,liboctave/operators/.libs/liboperators.a 
-Wl,-force_load,liboctave/system/.libs/libsystem.a 
-Wl,-force_load,liboctave/util/.libs/libutil.a 
-Wl,-force_load,liboctave/wrappers/.libs/libwrappers.a 
-Wl,-force_load,libgnu/.libs/libgnu.a  
-L/usr/local/Cellar/arpack/3.7.0_3/libexec/lib 
-L/usr/local/Cellar/fftw/3.3.8_1/lib 
-L/usr/local/Cellar/pcre/8.43/lib 
-L/usr/local/opt/libffi/lib 
-L/usr/local/opt/qrupdate/lib 
-L/usr/local/opt/qscintilla2/lib 
-L/usr/local/opt/readline/lib 
-L/usr/local/opt/sundials/lib 
-lcurl -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse
-lsuitesparseconfig 
/usr/local/Cellar/arpack/3.7.0_3/libexec/lib/libarpack.dylib 
-L/usr/local/opt/openblas/lib 
-lopenblas 
-lqrupdate 
-lfftw3_threads -lfftw3 -lfftw3f_threads -lfftw3f 
-L/usr/local/opt/veclibfort/lib 
-lvecLibFort 
-lreadline -lncurses 
-lpcre 
-ldl 
-L/usr/local/Cellar/gcc/9.2.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.2.0 
-L/usr/local/Cellar/gcc/9.2.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.2.0/../../..

-lgfortran -lquadmath -liconv -lm  
-pthread 
-g -O2 
-F/usr/local/opt/qt/lib   
-pthread 
-install_name  /tmp/test-octave/lib/octave/6.0.0/liboctave.7.dylib 
-compatibility_version 8 
-current_version 8.0 
-Wl,-single_module


(Line breaks added manually for readability in both cases.)

Anybody know where the `-Wl,-undefined -Wl,dynamic_lookup` is coming from, so
I can either remove it in the standalone build and reproduce the link
breakage, or add it to my Homebrew formula as a workaround to get the build
going?

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57049>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]