Opened 4 years ago

Closed 4 years ago

#60284 closed defect (fixed)

gmic @2.9.0_0: removes symbols needed by darktable @3.0.1_0

Reported by: olupton (Olli Lupton) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: Schamschula (Marius Schamschula), parafin
Port: gmic darktable

Description

Building darktable @3.0.1_0+openmp fails with the error

:info:build Undefined symbols for architecture x86_64:
:info:build   "cimg_library::CImgList<char>::assign(unsigned int)", referenced from:
:info:build       _lut3d_read_gmz in lut3dgmic.cpp.o
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make[2]: *** [src/iop/liblut3d.so] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_graphics_darktable/darktable/work/build'
:info:build make[1]: *** [src/iop/CMakeFiles/lut3d.dir/all] Error 2

when gmic @2.9.0_0 is installed. If I revert to gmic @2.8.4_0 the build succeeds (and the missing symbol is there):

$ nm -Ujg /opt/local/lib/libgmic.2.8.4.dylib | c++filt | grep "cimg_library::CImgList<char>::assign(unsigned int)"
cimg_library::CImgList<char>::assign(unsigned int)

I am not immediately sure if this is a defect in gmic or darktable. With gmic @2.9.0_0 far fewer symbols are exported:

$ nm -Ujg /opt/local/lib/libgmic.2.9.0.dylib | c++filt | grep assign
cimg_library::CImg<float>::assign(unsigned int, unsigned int, unsigned int, unsigned int)
cimg_library::CImgList<float>::assign(unsigned int)

vs.

$ nm -Ujg /opt/local/lib/libgmic.2.8.4.dylib | c++filt | grep assign | wc -l
     259

I also find that darktable crashes on startup, but presumably this is another issue, to be debugged separately. I doubt this is relevant, but I just updated to macOS Catalina.

Change History (8)

comment:1 Changed 4 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Owner: set to MarcusCalhoun-Lopez
Status: newaccepted

In the future, please add the maintainer of the port when opening tickets.

comment:2 Changed 4 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mps@… added

You say you have upgraded your OS.
Did you follow the migration instructions?

Last edited 4 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) (previous) (diff)

comment:3 Changed 4 years ago by olupton (Olli Lupton)

Yes, I followed those instructions and didn't run into any obvious problems.

As far as I can see it's just a coincidence that the gmic port was updated around the same time I upgraded.

(sorry for failing to add the port maintainer to the ticket)

comment:4 Changed 4 years ago by jmroot (Joshua Root)

Cc: Schamschula added; mps@… removed

comment:5 Changed 4 years ago by parafin

For some context see this discussion: https://discuss.pixls.us/t/gmic-lookup-symbol-err-on-opensuse-darktable-master-build/15827. For the current bug I successfully tested a workaround - add the following line to post-configure in gmic Portfile

reinplace "s/\\(MANDATORY_CFLAGS =\\)/\\1 -Dgmic_pixel_type2=char/" ${worksrcpath}/src/Makefile

comment:6 Changed 4 years ago by parafin

Cc: parafin added

comment:7 Changed 4 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

The issue has been fixed upstream.
I am working on a patch for the MacPorts gmic.

comment:8 Changed 4 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: acceptedclosed

In 50414980d5de812b6a835e5a886a3d65e3e224ea/macports-ports (master):

gmic: avoid missing symbol in library

Fixes #60284
See https://github.com/dtschump/gmic/pull/206

Required revbump will be part of subsequent change.

Note: See TracTickets for help on using tickets.