bugGNU Octave - Bugs: bug #59820, build fails on macOS with...

 
 

bug #59820: build fails on macOS with visibility settings

Submitted by:  Ben Abbott <bpabbott>
Submitted on:  Mon 04 Jan 2021 04:53:54 PM UTC  
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  None Assigned to:  None
Originator Name:  Ben Abbott Open/Closed:  Open
Release:  dev Operating System:  Mac OS

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Thu 21 Jan 2021 04:06:28 PM UTC, comment #25: 

@Ben: Could you please elaborate? I don't think that the spaces before the opening brackets that we have should make a difference, do they?

Markus Mützel <mmuetzel>
Project Member
Thu 21 Jan 2021 04:00:17 PM UTC, comment #24: 

@jwe: That is basically what I tried to do with the patch in comment #17. We could rename the configure flag if you prefer the other name.

Markus Mützel <mmuetzel>
Project Member
Thu 21 Jan 2021 03:49:18 PM UTC, comment #23: 

@Markus,

A quick google and look at source forge, it appears the macOS has different syntax

https://stackoverflow.com/questions/19496643/using-clang-fvisibility-hidden-and-typeinfo-and-type-erasure

#define API __attribute__((visibility("default")))

Ben Abbott <bpabbott>
Project Member
Thu 21 Jan 2021 03:46:40 PM UTC, comment #22: 

For now, I think it might be good to have a --disable-symbol-visibility-flags option for the configure script.  It should be fairly simple to do, right?  It should just need to cause the visibility macros to expand to nothing.

John W. Eaton <jwe>
Project Administrator
Thu 21 Jan 2021 03:44:12 PM UTC, comment #21: 

@Ben: Was the build tree clean before you started building? Did you run the bootstrap strip before configuring?

Markus Mützel <mmuetzel>
Project Member
Thu 21 Jan 2021 03:40:11 PM UTC, comment #20: 

hg update -r 1af06a145d40

[...]
libtool: link: g++ -dynamiclib  -o libinterp/.libs/liboctinterp.8.dylib  libinterp/.libs/liboctinterp_la-octave.o libinterp/operators/.libs/liboctinterp_la-op-b-b.o libinterp/operators/.libs/liboctinterp_la-op-b-bm.o libinterp/operators/.libs/liboctinterp_la-op-b-sbm.o libinterp/operators/.libs/liboctinterp_la-op-bm-b.o libinterp/operators/.libs/liboctinterp_la-op-bm-bm.o libinterp/operators/.libs/liboctinterp_la-op-bm-sbm.o libinterp/operators/.libs/liboctinterp_la-op-cdm-cdm.o libinterp/operators/.libs/liboctinterp_la-op-cdm-cm.o libinterp/operators/.libs/liboctinterp_la-op-cdm-cs.o libinterp/operators/.libs/liboctinterp_la-op-cdm-dm.o libinterp/operators/.libs/liboctinterp_la-op-cdm-m.o libinterp/operators/.libs/liboctinterp_la-op-cdm-s.o libinterp/operators/.libs/liboctinterp_la-op-cell.o libinterp/operators/.libs/liboctinterp_la-op-chm.o libinterp/operators/.libs/liboctinterp_la-op-class.o libinterp/operators/.libs/liboctinterp_la-op-cm-cdm.o libinterp/operators/.libs/liboctinterp_la-op-cm-cm.o libinterp/operators/.libs/liboctinterp_la-op-cm-cs.o libinterp/operators/.libs/liboctinterp_la-op-cm-dm.o libinterp/operators/.libs/liboctinterp_la-op-cm-m.o libinterp/operators/.libs/liboctinterp_la-op-cm-pm.o libinterp/operators/.libs/liboctinterp_la-op-cm-s.o libinterp/operators/.libs/liboctinterp_la-op-cm-scm.o libinterp/operators/.libs/liboctinterp_la-op-cm-sm.o libinterp/operators/.libs/liboctinterp_la-op-cs-cm.o libinterp/operators/.libs/liboctinterp_la-op-cs-cs.o libinterp/operators/.libs/liboctinterp_la-op-cs-m.o libinterp/operators/.libs/liboctinterp_la-op-cs-s.o libinterp/operators/.libs/liboctinterp_la-op-cs-scm.o libinterp/operators/.libs/liboctinterp_la-op-cs-sm.o libinterp/operators/.libs/liboctinterp_la-op-dm-cdm.o libinterp/operators/.libs/liboctinterp_la-op-dm-cm.o libinterp/operators/.libs/liboctinterp_la-op-dm-cs.o libinterp/operators/.libs/liboctinterp_la-op-dm-dm.o libinterp/operators/.libs/liboctinterp_la-op-dm-m.o libinterp/operators/.libs/liboctinterp_la-op-dm-s.o libinterp/operators/.libs/liboctinterp_la-op-dm-scm.o libinterp/operators/.libs/liboctinterp_la-op-dm-sm.o libinterp/operators/.libs/liboctinterp_la-op-fcdm-fcdm.o libinterp/operators/.libs/liboctinterp_la-op-fcdm-fcm.o libinterp/operators/.libs/liboctinterp_la-op-fcdm-fcs.o libinterp/operators/.libs/liboctinterp_la-op-fcdm-fdm.o libinterp/operators/.libs/liboctinterp_la-op-fcdm-fm.o libinterp/operators/.libs/liboctinterp_la-op-fcdm-fs.o libinterp/operators/.libs/liboctinterp_la-op-fcm-fcdm.o libinterp/operators/.libs/liboctinterp_la-op-fcm-fcm.o libinterp/operators/.libs/liboctinterp_la-op-fcm-fcs.o libinterp/operators/.libs/liboctinterp_la-op-fcm-fdm.o libinterp/operators/.libs/liboctinterp_la-op-fcm-fm.o libinterp/operators/.libs/liboctinterp_la-op-fcm-fs.o libinterp/operators/.libs/liboctinterp_la-op-fcm-pm.o libinterp/operators/.libs/liboctinterp_la-op-fcn.o libinterp/operators/.libs/liboctinterp_la-op-fcs-fcm.o libinterp/operators/.libs/liboctinterp_la-op-fcs-fcs.o libinterp/operators/.libs/liboctinterp_la-op-fcs-fm.o libinterp/operators/.libs/liboctinterp_la-op-fcs-fs.o libinterp/operators/.libs/liboctinterp_la-op-fdm-fcdm.o libinterp/operators/.libs/liboctinterp_la-op-fdm-fcm.o libinterp/operators/.libs/liboctinterp_la-op-fdm-fcs.o libinterp/operators/.libs/liboctinterp_la-op-fdm-fdm.o libinterp/operators/.libs/liboctinterp_la-op-fdm-fm.o libinterp/operators/.libs/liboctinterp_la-op-fdm-fs.o libinterp/operators/.libs/liboctinterp_la-op-fm-fcdm.o libinterp/operators/.libs/liboctinterp_la-op-fm-fcm.o libinterp/operators/.libs/liboctinterp_la-op-fm-fcs.o libinterp/operators/.libs/liboctinterp_la-op-fm-fdm.o libinterp/operators/.libs/liboctinterp_la-op-fm-fm.o libinterp/operators/.libs/liboctinterp_la-op-fm-fs.o libinterp/operators/.libs/liboctinterp_la-op-fm-pm.o libinterp/operators/.libs/liboctinterp_la-op-fs-fcm.o libinterp/operators/.libs/liboctinterp_la-op-fs-fcs.o libinterp/operators/.libs/liboctinterp_la-op-fs-fm.o libinterp/operators/.libs/liboctinterp_la-op-fs-fs.o libinterp/operators/.libs/liboctinterp_la-op-i16-i16.o libinterp/operators/.libs/liboctinterp_la-op-i32-i32.o libinterp/operators/.libs/liboctinterp_la-op-i64-i64.o libinterp/operators/.libs/liboctinterp_la-op-i8-i8.o libinterp/operators/.libs/liboctinterp_la-op-int-concat.o libinterp/operators/.libs/liboctinterp_la-op-m-cdm.o libinterp/operators/.libs/liboctinterp_la-op-m-cm.o libinterp/operators/.libs/liboctinterp_la-op-m-cs.o libinterp/operators/.libs/liboctinterp_la-op-m-dm.o libinterp/operators/.libs/liboctinterp_la-op-m-m.o libinterp/operators/.libs/liboctinterp_la-op-m-pm.o libinterp/operators/.libs/liboctinterp_la-op-m-s.o libinterp/operators/.libs/liboctinterp_la-op-m-scm.o libinterp/operators/.libs/liboctinterp_la-op-m-sm.o libinterp/operators/.libs/liboctinterp_la-op-mi.o libinterp/operators/.libs/liboctinterp_la-op-pm-cm.o libinterp/operators/.libs/liboctinterp_la-op-pm-fcm.o libinterp/operators/.libs/liboctinterp_la-op-pm-fm.o libinterp/operators/.libs/liboctinterp_la-op-pm-m.o libinterp/operators/.libs/liboctinterp_la-op-pm-pm.o libinterp/operators/.libs/liboctinterp_la-op-pm-scm.o libinterp/operators/.libs/liboctinterp_la-op-pm-sm.o libinterp/operators/.libs/liboctinterp_la-op-range.o libinterp/operators/.libs/liboctinterp_la-op-s-cm.o libinterp/operators/.libs/liboctinterp_la-op-s-cs.o libinterp/operators/.libs/liboctinterp_la-op-s-m.o libinterp/operators/.libs/liboctinterp_la-op-s-s.o libinterp/operators/.libs/liboctinterp_la-op-s-scm.o libinterp/operators/.libs/liboctinterp_la-op-s-sm.o libinterp/operators/.libs/liboctinterp_la-op-sbm-b.o libinterp/operators/.libs/liboctinterp_la-op-sbm-bm.o libinterp/operators/.libs/liboctinterp_la-op-sbm-sbm.o libinterp/operators/.libs/liboctinterp_la-op-scm-cm.o libinterp/operators/.libs/liboctinterp_la-op-scm-cs.o libinterp/operators/.libs/liboctinterp_la-op-scm-m.o libinterp/operators/.libs/liboctinterp_la-op-scm-s.o libinterp/operators/.libs/liboctinterp_la-op-scm-scm.o libinterp/operators/.libs/liboctinterp_la-op-scm-sm.o libinterp/operators/.libs/liboctinterp_la-op-sm-cm.o libinterp/operators/.libs/liboctinterp_la-op-sm-cs.o libinterp/operators/.libs/liboctinterp_la-op-sm-m.o libinterp/operators/.libs/liboctinterp_la-op-sm-s.o libinterp/operators/.libs/liboctinterp_la-op-sm-scm.o libinterp/operators/.libs/liboctinterp_la-op-sm-sm.o libinterp/operators/.libs/liboctinterp_la-op-str-m.o libinterp/operators/.libs/liboctinterp_la-op-str-s.o libinterp/operators/.libs/liboctinterp_la-op-str-str.o libinterp/operators/.libs/liboctinterp_la-op-struct.o libinterp/operators/.libs/liboctinterp_la-op-ui16-ui16.o libinterp/operators/.libs/liboctinterp_la-op-ui32-ui32.o libinterp/operators/.libs/liboctinterp_la-op-ui64-ui64.o libinterp/operators/.libs/liboctinterp_la-op-ui8-ui8.o libinterp/template-inst/.libs/liboctinterp_la-Array-tc.o libinterp/template-inst/.libs/liboctinterp_la-Array-jit.o libinterp/.libs/liboctinterp_la-build-env-features.o libinterp/.libs/liboctinterp_la-build-env.o libinterp/.libs/liboctinterp_la-builtins.o libinterp/corefcn/.libs/liboctinterp_la-oct-errno.o libinterp/.libs/liboctinterp_la-liboctinterp-build-info.o libinterp/operators/.libs/liboctinterp_la-ops.o   -Wl,-force_load,libinterp/octave-value/.libs/liboctave-value.a -Wl,-force_load,libinterp/parse-tree/.libs/libparse-tree.a -Wl,-force_load,libinterp/corefcn/.libs/libcorefcn.a  -L/usr/local/opt/hdf5/lib -L/usr/local/Cellar/graphicsmagick/1.3.35/lib -L/usr/local/Cellar/fftw/3.3.8_2/lib -L/usr/local/Cellar/arpack/3.7.0_5/libexec/lib -L/usr/local/Cellar/pcre/8.44/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/sqlite/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/bison/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/icu4c/lib -L/usr/local/opt/sundials27/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/qrupdate/lib liboctave/.libs/liboctave.dylib -L/usr/local/opt/openblas/lib -L/usr/local/Cellar/gcc/10.2.0/lib/gcc/10/gcc/x86_64-apple-darwin19/10.2.0 -L/usr/local/Cellar/gcc/10.2.0/lib/gcc/10/gcc/x86_64-apple-darwin19/10.2.0/../../.. -L/usr/local/opt/freetype/lib -lhdf5 /usr/local/Cellar/graphicsmagick/1.3.35/lib/libGraphicsMagick++.dylib /usr/local/Cellar/graphicsmagick/1.3.35/lib/libGraphicsMagick.dylib -llcms2 -lbz2 -lltdl -lpthread -lz -framework OpenGL -lfontconfig -lfreetype -framework Carbon -lgl2ps -lcurl -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -lsuitesparseconfig /usr/local/Cellar/arpack/3.7.0_5/libexec/lib/libarpack.dylib -lqrupdate -lfftw3_threads -lfftw3 -lfftw3f_threads -lfftw3f -lopenblas -lreadline -lncurses -lpcre -ldl -lgfortran -lquadmath -liconv -lm  -pthread -g -O2 -F/usr/local/opt/qt5/lib -Wl,-framework -Wl,CoreFoundation   -pthread -framework OpenGL -framework Carbon -install_name  /usr/local/bpabbott/octave/lib/octave/7.0.0/liboctinterp.8.dylib -compatibility_version 9 -current_version 9.0 -Wl,-single_module
Undefined symbols for architecture x86_64:
  "octave::math::sparse_qr<SparseMatrix>::sparse_qr(SparseMatrix const&, int)", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseMatrix>::~sparse_qr()", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseComplexMatrix>::sparse_qr(SparseComplexMatrix const&, int)", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseComplexMatrix>::~sparse_qr()", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseMatrix>::C(Matrix const&) const", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseMatrix>::Q() const", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseMatrix>::R(bool) const", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseComplexMatrix>::C(ComplexMatrix const&) const", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseComplexMatrix>::Q() const", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
  "octave::math::sparse_qr<SparseComplexMatrix>::R(bool) const", referenced from:
      Fqr(octave_value_list const&, int) in libcorefcn.a(libcorefcn_la-qr.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libinterp/liboctinterp.la] Error 1
make[1]: *** [all-recursive] Error 1

Ben Abbott <bpabbott>
Project Member
Thu 21 Jan 2021 07:14:48 AM UTC, comment #19: 

@Ben: This page is from a gcc perspective:
https://gcc.gnu.org/wiki/Visibility

I don't know if there is a similar introduction for visibility with Apple clang. But the general concept should be the same across compilers/vendors on POSIX platforms.

Markus Mützel <mmuetzel>
Project Member
Thu 21 Jan 2021 04:18:47 AM UTC, comment #18: 

@Carlo, as I have time I'll revert and try building after revering cd6b616b36a8 and all changes since.

@Markus, I'll also give you patch a try. Regarding the visibility attributes, can you give a link explaining what this does?

Ben Abbott <bpabbott>
Project Member
Wed 20 Jan 2021 05:26:21 PM UTC, comment #17: 

The attached patch should allow to optionally disable compiling and linking the libraries with visibility attributes.

After applying it, run the bootstrap script and configure with "--disable-lib-visibility".

It would still be good if someone could check what we'd need to change to get Octave to compile with visibility attributes on Mac.

(file #50756)

Markus Mützel <mmuetzel>
Project Member
Wed 20 Jan 2021 03:20:52 PM UTC, comment #16: 

@cdf: That'll probably be the change immediately before this one:
https://hg.savannah.gnu.org/hgweb/octave/rev/cd6b616b36a8

Markus Mützel <mmuetzel>
Project Member
Wed 20 Jan 2021 03:07:48 PM UTC, comment #15: 

@Ben

Did you try to find out what is the latest chengeset that builds correctly on macos?

Carlo de Falco <cdf>
Project Member
Wed 20 Jan 2021 10:18:58 AM UTC, comment #14: 

Re-titling report to better describe the issue.

Markus Mützel <mmuetzel>
Project Member
Fri 08 Jan 2021 10:40:07 AM UTC, comment #13: 

Like I already wrote, I can't really solve this because I don't have a Mac.

Some general advice for someone motivated:
For me, it worked best to try and tackle the missing symbols one at a time.
E.g. for the missing symbol "_set_liboctave_warning_with_id_handler":

  1. Try and find where in the sources that symbol should be defined. For that symbol, it is most likely a C mangled version (leading underscore) of the function "set_liboctave_warning_with_id_handler" defined in "liboctave/util/lo-error.cc".
  2. Check which symbols are exported by that compile unit. I don't know the naming conventions on Mac or whether it has "nm" at all. On Linux, I'd try:

    nm -C liboctave/util/.libs/libutil_la-lo-error.o | grep "set_liboctave_warning_with_id_handler"

  3. If the symbol is exported from that compile unit, check if the name is mangled as expected:

    nm liboctave/util/.libs/libutil_la-lo-error.o | grep "set_liboctave_warning_with_id_handler"

  4. If this is also ok, check if it is exported from the corresponding library. On Linux for that file, that would be:

    nm -C liboctave/.libs/liboctave.so | grep "set_liboctave_warning_with_id_handler"

The symbol must be in the exported symbol table of that library. With "nm" that is indicated by e.g. "T" or "W" before the symbol name.

Depending on which step failed, try and find out why that is...

If there is a pattern, it might make sense to apply the solution to similar symbols.

Good luck hunting down the issues.

If there are changesets that allow linking on MacOS, I'm happy to check if those would be compatible with gcc and clang on Linux and possibly also with Windows targets.

Markus Mützel <mmuetzel>
Project Member
Fri 08 Jan 2021 04:19:09 AM UTC, comment #12: 

I just tried building

$ hg id
62198e9d525f tip @

On macos 11.1

I attach the configure options I used (file #50681),
and the output of configure (file #50680) and of make
(file #50682)

Carlo de Falco <cdf>
Project Member
Thu 07 Jan 2021 11:45:03 PM UTC, comment #11: 

@Carlo,

I'm still running 10.15.7. I can upgrade to 11, but haven't done so yet.

Ben Abbott <bpabbott>
Project Member
Thu 07 Jan 2021 11:43:08 PM UTC, comment #10: 

I've run configure and attached the result

(file #50676)

Ben Abbott <bpabbott>
Project Member
Thu 07 Jan 2021 04:57:23 PM UTC, comment #9: 

I may help with testing on macos, but have upgraded to macos 11.1 so my results could be different from those reported by Ben

Carlo de Falco <cdf>
Project Member
Thu 07 Jan 2021 04:07:23 PM UTC, comment #8: 

These visibility attributes aren't very well documented. The behavior seems to be very dependent on platform and compiler vendor. Even different compiler flags seem to lead to different results.
Getting this somewhat right seems to need a lot of experimentation.
I don't have access to an Apple computer. So unless there is a developer on MacOS who is willing to invest some time into this, we are left with two options that I can think of:

  1. Leave the MacOS builds broken to build up some pressure to hopefully motivate someone to look into this on MacOS.
  2. Don't build with visibility settings on MacOS. (The patch from comment #1 is not complete for this.)
Markus Mützel <mmuetzel>
Project Member
Thu 07 Jan 2021 03:55:22 PM UTC, comment #7: 

On macOS 10.15.7

g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Ben Abbott <bpabbott>
Project Member
Wed 06 Jan 2021 09:55:37 PM UTC, comment #6: 

I tried googling "apple clang function visibility" and came up with a few hits which look like Apple's clang is different from both regular clang and from gcc.  This might be annoying to fix.

Rik <rik5>
Project Administrator
Wed 06 Jan 2021 12:31:36 PM UTC, comment #5: 

Could you please upload a complete build log (including any potential warnings during compilation)?
Is the `g++` you are using actually a compiler from GCC? Or is it a link to `clang++`?
What does `g++ --version` return?

Markus Mützel <mmuetzel>
Project Member
Tue 05 Jan 2021 09:19:13 PM UTC, comment #4: 

My tip is now ...

$ hg tip
changeset:   29262:7e378993e8fa
bookmark:    @
tag:         tip
parent:      29260:18ad3c01fc2a
parent:      29261:f36ca61488e0
user:        Markus Mützel <markus.muetzel@gmx.de>
date:        Tue Jan 05 15:54:22 2021 +0100
summary:     maint: merge stable to default.

I"ve attached the result of bulging.

(file #50664)

Ben Abbott <bpabbott>
Project Member
Tue 05 Jan 2021 03:43:24 PM UTC, comment #3: 

@Markus
Typically macOS (BSD variant) is able to build what Linux is able to build. There are occasionally some differences with Apple's variant of clang.

After updating to fdfd874293f6, the problem persists. I've pulled the more recent changes and am compiling now.

Ben Abbott <bpabbott>
Project Member
Tue 05 Jan 2021 12:21:22 AM UTC, comment #2: 

"If you'd prefer to be able to compile without too much effort, you could try with the attached patch which should revert the visibility settings.
(Maybe we should do that on all platforms we haven't tested.)"

I'd suggest that we just keep moving forward.  Keep testing, more users will try it on various platforms and report errors, we fix those and keep going.  Eventually the error reports will dwindle to a trickle.  I imagine that the number of compiler/OS combinations that we need to support is actually fairly small: Linux (gcc & clang), Windows (gcc through MXE Octave), MacOS (clang & gcc).  We already don't compile well with Intel MKL compiler so we can probably skip that.  And other systems, like Solaris, are pretty niche.

Rik <rik5>
Project Administrator
Mon 04 Jan 2021 09:01:51 PM UTC, comment #1: 

Thanks for testing on Mac OS.
While I was hoping that the changes for patch #8919 would work on that platform if the code compiles on Linux, I wasn't very confident that would actually work. (Especially, after it turned out that different compilers interpreted the visibility attributes differently on the same platform.)

There have been a few changes after that changeset with fixes for clang on Linux.
Could you please try with a newer revision (at least d83ae0145030 or newer)?
This will probably not fix all of the missing symbols. But maybe some.

Do you have pointers to how "visibility" or "exported functions" work in general on MacOS? At least Windows seems to have quite a different concept from Linux in this respect...

If you'd prefer to be able to compile without too much effort, you could try with the attached patch which should revert the visibility settings.
(Maybe we should do that on all platforms we haven't tested.)

(file #50649)

Markus Mützel <mmuetzel>
Project Member
Mon 04 Jan 2021 04:53:54 PM UTC, original submission:  

$ hg tip
changeset:   29244:d1473e75d7d6
bookmark:    @
tag:         tip
user:        Markus Mützel <markus.muetzel@gmx.de>
date:        Fri Jan 01 17:33:04 2021 +0100
summary:     lo-utils: Export template instantiations (patch #8919).

I've attached how make ends (it is long).

I'm happy to revert suggested changes to track the problem down.

Ben Abbott <bpabbott>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #50682:  make-macos.log.zip added by cdf (119KiB - application/zip)
file #50680:  config-macos.log added by cdf (64KiB - application/octet-stream)
file #50681:  buildcommand.sh added by cdf (2KiB - application/x-sh)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by cdf (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by mmuetzel (Updated the item)
  • -email is unavailable- added by bpabbott (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 14 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-01-20 mmuetzel Attached File- => Added bug59820_visibility_optional.patch, #50756
    2021-01-20 mmuetzel Summarybuild fails on macOS => build fails on macOS with visibility settings
    2021-01-08 cdf Attached File- => Added make-macos.log.zip, #50682
    2021-01-08 cdf Attached File- => Added config-macos.log, #50680
        Attached File- => Added buildcommand.sh, #50681
    2021-01-08 cdf Attached File#50678 => Removed
    2021-01-08 cdf Attached File#50677 => Removed
    2021-01-08 cdf Attached File- => Added make.log, #50678
    2021-01-08 cdf Attached File- => Added buildcommand.sh, #50677
    2021-01-07 bpabbott Attached File- => Added build-failure-macOS-configure-2021.01.07.txt, #50676
    2021-01-06 mmuetzel CategoryNone => Configuration and Build System
    2021-01-05 bpabbott Attached File- => Added build_failure_macOS-2020.01.05.txt, #50664
    2021-01-04 mmuetzel Attached File- => Added bug59820_revert_visibility.patch, #50649
    2021-01-04 bpabbott Attached File- => Added build-failure-macOS-2020.10.04.txt, #50646

    Back to the top


    Powered by Savane 3.5