Opened 3 months ago

Last modified 3 weeks ago

#70676 reopened defect

gmic-lib: Unable to upgrade on Mtn Lion - fatal error: use of undeclared identifier 'AT_FDCWD'

Reported by: RobK88 Owned by: Ken <21211439+kencu@…>
Priority: Normal Milestone:
Component: ports Version: 2.10.1
Keywords: mtnlion Cc: Schamschula (Marius Schamschula), RobK88, mascguy (Christopher Nielsen)
Port: gmic-lib legacy-support

Description

I am unable to upgrade the port gmic from version 3.4.0. to version 3.4.1 on Mtn Lion.

I see the following error:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/cxx/opt/local/bin/clang++-mp-17 -o libgmic.o -c gmic.cpp -Dgmic_core -fPIC -Os -arch x86_64 -Dgmic_community -Dcimg_date=\"\" -Dcimg_time=\"\" -Dcimg_use_zlib -I.    -std=c++11 -pedantic -Wall -Wextra -Wfatal-errors -Werror=unknown-pragmas -Werror=unused-label -Wshadow -Dcimg_use_abort -Dgmic_is_parallel -Dcimg_use_fftw3  -Dcimg_use_curl -I/opt/local/libexec/openssl3/include -Dcimg_use_png -I/opt/local/include/libpng16 -Dcimg_use_jpeg  -Dcimg_use_tiff  -Dcimg_display=1 -I/opt/local/include -Dcimg_use_openexr -pthread -I/opt/local/include/OpenEXR -I/opt/local/include/Imath 
In file included from gmic.cpp:1786:
In file included from ./gmic.h:261:
In file included from ./CImg.h:613:
In file included from /opt/local/include/OpenEXR/ImfRgbaFile.h:22:
In file included from /opt/local/include/OpenEXR/ImfHeader.h:25:
/opt/local/include/OpenEXR/ImfAttribute.h:257:54: warning: unused parameter 'version' [-Wunused-parameter]
  257 |     OPENEXR_IMF_INTERNAL_NAMESPACE::OStream& os, int version) const
      |                                                      ^
/opt/local/include/OpenEXR/ImfAttribute.h:266:54: warning: unused parameter 'size' [-Wunused-parameter]
  266 |     OPENEXR_IMF_INTERNAL_NAMESPACE::IStream& is, int size, int version)
      |                                                      ^
/opt/local/include/OpenEXR/ImfAttribute.h:266:64: warning: unused parameter 'version' [-Wunused-parameter]
  266 |     OPENEXR_IMF_INTERNAL_NAMESPACE::IStream& is, int size, int version)
      |                                                                ^
In file included from gmic.cpp:1786:
In file included from ./gmic.h:261:
./CImg.h:67455:45: fatal error: use of undeclared identifier 'AT_FDCWD'
 67455 |         if (cimg::is_file(buf) && faccessat(AT_FDCWD, buf, X_OK, AT_EACCESS) == 0) { delete[] buf; return true; }
       |                                             ^
3 warnings and 1 error generated.
make[1]: *** [libgmic.o] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/gmic-3.4.1/src'
make: *** [lib] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/gmic-3.4.1/src'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/gmic-3.4.1/src" && /usr/bin/make -w lib NO_STDLIB=Yes OPT_CFLAGS="" SOVERSION=1 X11_CFLAGS="-Dcimg_display=1 -I/opt/local/include" X11_LIBS="-L/opt/local/lib -lX11 -lpthread" USR=/opt/local CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/cc/opt/local/bin/clang-mp-17" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/cxx/opt/local/bin/clang++-mp-17" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/objc/opt/local/bin/clang-mp-17" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/objcxx/opt/local/bin/clang++-mp-17" INSTALL="/usr/bin/install -c" 
Exit code: 2
Error: Failed to build gmic-lib: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.

For more details, please see the attached main.log.

Attachments (2)

main.log (23.2 KB) - added by RobK88 3 months ago.
main.2.log (25.1 KB) - added by RobK88 3 months ago.
main.log after kencu changes

Download all attachments as: .zip

Change History (17)

Changed 3 months ago by RobK88

Attachment: main.log added

comment:1 Changed 3 months ago by RobK88

Cc: RobK88 added

comment:2 Changed 3 months ago by RobK88

Summary: gmic-lib - Unable to upgrade on Mtn Lion - fatal error: use of undeclared identifier 'AT_FDCWD'gmic-lib: Unable to upgrade on Mtn Lion - fatal error: use of undeclared identifier 'AT_FDCWD'

comment:3 Changed 3 months ago by Schamschula (Marius Schamschula)

Sorry, I can't help you with Mountain Lion. I don't run any machines with non-current macOS versions, and thus can't test any fixes.

Hopefully, one of the fellow maintainers who works on backwards compatibility will chime in.

comment:4 Changed 3 months ago by kencu (Ken)

that is covered by legacysupport, so step 1 might be to add that.

comment:5 Changed 3 months ago by RobK88

Port: legacy-support added

comment:6 Changed 3 months ago by RobK88

Thanks Ken. I jave added the legacysupport port to this ticket. But I am unable to add any of the legacysupport maintainers to the cc list.

comment:7 Changed 3 months ago by kencu (Ken)

the port already uses legacysupport I see, just have to change the blocker from this:

legacysupport.newest_darwin_requires_legacy 10

to this:

legacysupport.newest_darwin_requires_legacy 13

and give it a try.

comment:8 Changed 3 months ago by Ken <21211439+kencu@…>

Owner: set to Ken <21211439+kencu@…>
Resolution: fixed
Status: newclosed

In 02b9b1ba06854d477a2f6476749f6327de25353f/macports-ports (master):

gmic: broaden use of legacysupport to darwin 13

closes: #70676

comment:9 Changed 3 months ago by kencu (Ken)

I went ahead and did it for you.

let's see if that fixes this build error.

comment:10 Changed 3 months ago by kencu (Ken)

Resolution: fixed
Status: closedreopened

link fails.

At first glance, it looks like the legacysupport library is not getting added.

/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gmic/gmic-clib/work/compwrap/cxx/opt/local/bin/clang++-mp-17 -dynamiclib -o libgmic.1.dylib -install_name /opt/local/lib/libgmic.1.dylib -compatibility_version 1 -current_version 3.4.1 -Dcimg_date=\\\"\\\" -Dcimg_time=\\\"\\\" -Dcimg_use_zlib -I.    -std=c++11 -pedantic -Wall -Wextra -Wfatal-errors -Werror=unknown-pragmas -Werror=unused-label -Wshadow libgmic.o -L/opt/local/lib -lz  -L. -L/opt/local/lib -Wl,-rpath,. -lpthread -L/opt/local/lib -lfftw3 -lfftw3_threads -L/opt/local/lib -lcurl -L/opt/local/lib -lpng16 -L/opt/local/lib -ljpeg -L/opt/local/lib -ltiff -L/opt/local/lib -lX11 -lpthread -L/opt/local/lib -lOpenEXR-3_2 -lOpenEXRUtil-3_2 -lOpenEXRCore-3_2 -lIex-3_2 -lIlmThread-3_2 -lImath-3_1 

comment:11 Changed 3 months ago by RobK88

Thanks Ken. Your change did help. The compile went further but then stopped with another undefined symbol error:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/cxx/opt/local/bin/clang++-mp-17 -dynamiclib -o libgmic.1.dylib -install_name /opt/local/lib/libgmic.1.dylib -compatibility_version 1 -current_version 3.4.1 -Dcimg_date=\\\"\\\" -Dcimg_time=\\\"\\\" -Dcimg_use_zlib -I.    -std=c++11 -pedantic -Wall -Wextra -Wfatal-errors -Werror=unknown-pragmas -Werror=unused-label -Wshadow libgmic.o -L/opt/local/lib -lz  -L. -L/opt/local/lib -Wl,-rpath,. -lpthread -L/opt/local/lib -lfftw3 -lfftw3_threads -L/opt/local/lib -lcurl -L/opt/local/lib -lpng16 -L/opt/local/lib -ljpeg -L/opt/local/lib -ltiff -L/opt/local/lib -lX11 -lpthread -L/opt/local/lib -lOpenEXR-3_2 -lOpenEXRUtil-3_2 -lOpenEXRCore-3_2 -lIex-3_2 -lIlmThread-3_2 -lImath-3_1 
Undefined symbols for architecture x86_64:
  "_faccessat", referenced from:
      gmic_library::cimg::posix_searchpath(char const*) in libgmic.o
ld: symbol(s) not found for architecture x86_64
clang++: fatal error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [libgmic.so] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/gmic-3.4.1/src'
make: *** [lib] Error 2
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/gmic-3.4.1/src'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/gmic-3.4.1/src" && /usr/bin/make -w lib NO_STDLIB=Yes OPT_CFLAGS="" SOVERSION=1 X11_CFLAGS="-Dcimg_display=1 -I/opt/local/include" X11_LIBS="-L/opt/local/lib -lX11 -lpthread" USR=/opt/local CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/cc/opt/local/bin/clang-mp-17" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/cxx/opt/local/bin/clang++-mp-17" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/objc/opt/local/bin/clang-mp-17" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/work/compwrap/objcxx/opt/local/bin/clang++-mp-17" INSTALL="/usr/bin/install -c" 
Exit code: 2
Error: Failed to build gmic-lib: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_science_gmic/gmic-lib/main.log for details.
Error: Unable to execute port gmic: upgrade gmic-lib failed

I have attached another main.log

Changed 3 months ago by RobK88

Attachment: main.2.log added

main.log after kencu changes

comment:12 Changed 3 months ago by RobK88

@kencu I was mistaken. You were right. Your changes had no effect. It looks like the reason why the compile went further today for gmic-lib is due to updated dependencies. Both gobject-introspection and libsdl2 were updated. Now we have another undefined symbol - _faccessat

comment:13 Changed 3 months ago by kencu (Ken)

oh, the build does get further, and the changes I made were needed.

Just not sufficient yet, as the legacysupport library is not being added to the link libraries.

Usually the legacysupport PG can automatically add it, but not working in this case so someone will need to dig in and find out why not

Last edited 3 months ago by kencu (Ken) (previous) (diff)

comment:14 Changed 3 weeks ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:15 in reply to:  13 Changed 3 weeks ago by mascguy (Christopher Nielsen)

Replying to kencu:

oh, the build does get further, and the changes I made were needed.

Just not sufficient yet, as the legacysupport library is not being added to the link libraries.

Usually the legacysupport PG can automatically add it, but not working in this case so someone will need to dig in and find out why not

Interestingly enough, the lib is being added for 10.6, per the buildbot:

gmic-lib/work/compwrap/cxx/opt/local/bin/clang++-mp-11 -dynamiclib -o libgmic.1.dylib -install_name /opt/local/lib/libgmic.1.dylib -compatibility_version 1
-current_version 3.4.3 -Dcimg_date=\\\"\\\" -Dcimg_time=\\\"\\\" -Dcimg_use_zlib -I.    -std=c++11 -pedantic -Wall -Wextra -Wfatal-errors -Werror=unknown-pragmas
-Werror=unused-label -Wshadow libgmic.o -L/opt/local/lib -lz  -L. -L/opt/local/lib -Wl,-rpath,. -lpthread -L/opt/local/lib -lfftw3 -lfftw3_threads
-L/opt/local/lib -lcurl -L/opt/local/lib -lpng16 -L/opt/local/lib -ljpeg -L/opt/local/lib -ltiff -L/opt/local/lib -lX11 -lpthread -L/opt/local/lib
-lOpenEXR-3_2 -lOpenEXRUtil-3_2 -lOpenEXRCore-3_2 -lIex-3_2 -lIlmThread-3_2 -lImath-3_1 -L/opt/local/lib -lMacportsLegacySupport

ln -fs libgmic.so.343 libgmic.so.3
ln -fs libgmic.so.3 libgmic.so

gmic-lib/work/compwrap/cxx/opt/local/bin/clang++-mp-11 -o use_libgmic use_libgmic.cpp -std=c++11 -pedantic -lgmic -L/opt/local/lib -lz  -L. -L/opt/local/lib
-Wl,-rpath,. -lpthread -L/opt/local/lib -lfftw3 -lfftw3_threads -L/opt/local/lib -lcurl -L/opt/local/lib -lpng16 -L/opt/local/lib -ljpeg -L/opt/local/lib
-ltiff -L/opt/local/lib -lX11 -lpthread -L/opt/local/lib -lOpenEXR-3_2 -lOpenEXRUtil-3_2 -lOpenEXRCore-3_2 -lIex-3_2 -lIlmThread-3_2 -lImath-3_1 -L/opt/local/lib
-lMacportsLegacySupport

But not for 10.7 thru 10.9.

Note: See TracTickets for help on using tickets.