When building relatively recent gcc ports (with C++ in them) against
libc++ 17, you get errors similar to:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute only applies to structs, variables, functions, and namespaces
546 | _LIBCPP_INLINE_VISIBILITY
| ^
/usr/include/c++/v1/__config:813:37: note: expanded from macro '_LIBCPP_INLINE_VISIBILITY'
813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
| ^
/usr/include/c++/v1/__config:792:26: note: expanded from macro '_LIBCPP_HIDE_FROM_ABI'
792 | __attribute__((__abi_tag__(_LIBCPP_TOSTRING(_LIBCPP_VERSIONED_IDENTIFIER))))
| ^
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:547:37: error: expected ';' at end of declaration list
547 | char_type toupper(char_type __c) const
| ^
/usr/include/c++/v1/__locale:553:48: error: too many arguments provided to function-like macro invocation
553 | const char_type* toupper(char_type* __low, const char_type* __high) const
| ^
/wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/../include/safe-ctype.h:146:9: note: macro 'toupper' defined here
146 | #define toupper(c) do_not_use_toupper_with_safe_ctype
| ^
This is because gcc/system.h includes safe-ctype.h which redefines ctype
macros such as toupper, tolower, etc to "poison" them.
However, it should only include the safe-ctype.h header *after* any C++
headers, such as <list>, <map>, <string>, etc, otherwise these might
transitively include internal ctype headers (such as with libc++ 17),
causing the above conflicts.
Fix it by moving the safe-ctype.h inclusion to later in gcc/system.h,
which solves this issue, and makes it possible to build against libc++
17.
See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632
PR: 274039
Approved by: maintainer timeout (2 weeks)
MFH: 2023Q4
Building sysutils/libcdio with lld 17 results in the following link
errors:
libtool: link: cc -shared -fPIC -DPIC .libs/_cdio_generic.o .libs/_cdio_stdio.o .libs/_cdio_stream.o .libs/abs_path.o .libs/aix.o .libs/audio.o .libs/cd_types.o .libs/cdio.o .libs/cdtext.o .libs/device.o .libs/disc.o .libs/ds.o FreeBSD/.libs/freebsd.o FreeBSD/.libs/freebsd_cam.o FreeBSD/.libs/freebsd_ioctl.o .libs/gnu_linux.o image/.libs/bincue.o image/.libs/cdrdao.o .libs/image_common.o image/.libs/nrg.o .libs/logging.o .libs/memory.o mmc/.libs/mmc.o mmc/.libs/mmc_hl_cmds.o mmc/.libs/mmc_ll_cmds.o mmc/.libs/mmc_util.o MSWindows/.libs/aspi32.o MSWindows/.libs/win32_ioctl.o MSWindows/.libs/win32.o .libs/netbsd.o .libs/osx.o .libs/read.o .libs/realpath.o .libs/sector.o .libs/solaris.o .libs/track.o .libs/utf8.o .libs/util.o -L/usr/local/lib -lm -lcam -O2 -fstack-protector-strong -Wl,--version-script=libcdio.la.ver -fstack-protector-strong -Wl,-soname -Wl,libcdio.so.19 -o .libs/libcdio.so.19.0.0
ld: error: version script assignment of 'CDIO_19' to symbol 'cdio_get_default_device_bsdi' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'cdio_get_devices_bsdi' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'cdio_have_bsdi' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'cdio_open_am_bsdi' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'cdio_open_bsdi' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'cdio_set_drive_speed' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'mmc_get_last_lsn' failed: symbol not defined
ld: error: version script assignment of 'CDIO_19' to symbol 'mmc_isrc_track_read_subchannel' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
There are a number of symbols in libcdio's linker version scripts which
are no longer defined, so remove them.
PR: 274196
Approved by: jhale (maintainer)
MFH: 2023Q4
Building audio/pulseaudio with lld 17 results in the following link
errors:
cc -o src/pulse/libpulse.so.0.24.2 src/pulse/libpulse.so.0.24.2.p/channelmap.c.o src/pulse/libpulse.so.0.24.2.p/context.c.o src/pulse/libpulse.so.0.24.2.p/direction.c.o src/pulse/libpulse.so.0.24.2.p/error.c.o src/pulse/libpulse.so.0.24.2.p/ext-device-manager.c.o src/pulse/libpulse.so.0.24.2.p/ext-device-restore.c.o src/pulse/libpulse.so.0.24.2.p/ext-stream-restore.c.o src/pulse/libpulse.so.0.24.2.p/format.c.o src/pulse/libpulse.so.0.24.2.p/introspect.c.o src/pulse/libpulse.so.0.24.2.p/mainloop-api.c.o src/pulse/libpulse.so.0.24.2.p/mainloop-signal.c.o src/pulse/libpulse.so.0.24.2.p/mainloop.c.o src/pulse/libpulse.so.0.24.2.p/operation.c.o src/pulse/libpulse.so.0.24.2.p/proplist.c.o src/pulse/libpulse.so.0.24.2.p/rtclock.c.o src/pulse/libpulse.so.0.24.2.p/sample.c.o src/pulse/libpulse.so.0.24.2.p/scache.c.o src/pulse/libpulse.so.0.24.2.p/stream.c.o src/pulse/libpulse.so.0.24.2.p/subscribe.c.o src/pulse/libpulse.so.0.24.2.p/thread-mainloop.c.o src/pulse/libpulse.so.0.24.2.p/timeval.c.o src/pulse/libpulse.so.0.24.2.p/utf8.c.o src/pulse/libpulse.so.0.24.2.p/util.c.o src/pulse/libpulse.so.0.24.2.p/volume.c.o src/pulse/libpulse.so.0.24.2.p/xmalloc.c.o -L/usr/local/lib -Wl,--as-needed -Wl,--allow-shlib-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,libpulse.so.0 -fstack-protector-strong -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -DLIBICONV_PLUG -isystem /usr/local/include '-Wl,-rpath,$ORIGIN/..:/usr/local/lib' -Wl,-rpath-link,/wrkdirs/share/dim/ports/audio/pulseaudio/work/pulseaudio-16.1/_build/src -Wl,-rpath-link,/usr/local/lib src/libpulsecommon-16.1.so -Wl,-z,nodelete -Wl,-version-script=/wrkdirs/share/dim/ports/audio/pulseaudio/work/pulseaudio-16.1/src/pulse/map-file -lm -pthread /usr/local/lib/libdbus-1.so -ldl -lintl -Wl,--end-group
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_glib_mainloop_free' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_glib_mainloop_get_api' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_glib_mainloop_new' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_drain' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_flush' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_free' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_get_latency' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_new' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_read' failed: symbol not defined
ld: error: version script assignment of 'PULSE_0' to symbol 'pa_simple_write' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts. Since pulseaudio uses the same
linker version script for both the regular libpulse.so, and the other
variants, libpulse-mainloop-glib.so and libpulse-simple.so, some of the
symbols are expected to be undefined, so suppress the errors by adding
-Wl,--undefined-version to LDFLAGS.
PR: 274111
Approved by: blanket (for desktop and kde)
MFH: 2023Q4
Building java/openjdk17 with lld 17 results in the following link errors:
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZ21WB_HandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZ26WB_AsyncHandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN12JvmtiEnvBase27check_for_periodic_clean_upEvE28ThreadInsideIterationClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN15G1RemSetSummary6updateEvE11CollectData' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN16SATBMarkQueueSet22set_active_all_threadsEbbE22SetThreadActiveClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN16SATBMarkQueueSet23abandon_partial_markingEvE25AbandonThreadQueueClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN18G1ConcurrentRefine30get_and_reset_refinement_statsEvE12CollectStats' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet12abandon_logsEvE23AbandonThreadLogClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet16concatenate_logsEvE27ConcatenateThreadLogClosure' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet30get_and_reset_refinement_statsEvE12CollectStats' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN7Threads25change_thread_claim_tokenEvE11ResetClaims' failed: symbol not defined
c++: error: linker command failed with exit code 1 (use -v to see invocation)
This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts. The problem is due to the Makefile
JvmMapfile.gmk, which generates a linker version script. It uses "nm
--defined-only" to dump symbols in object files, but this also includes
local (hidden) symbols. Add "--extern-only" to make it only dump global
symbols.
PR: 274109
Approved by: maintainer timeout (10 days)
MFH: 2023Q4
Building devel/libnotify with lld 17 results in the following link
error:
cc -o libnotify/libnotify.so.4.0.0 libnotify/libnotify.so.4.0.0.p/meson-generated_.._notify-enum-types.c.o libnotify/libnotify.so.4.0.0.p/meson-generated_.._notify-marshal.c.o libnotify/libnotify.so.4.0.0.p/notify.c.o libnotify/libnotify.so.4.0.0.p/notification.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,libnotify.so.4 -fstack-protector-strong -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wl,-rpath,/usr/local/lib -Wl,-rpath-link,/usr/local/lib -Wl,--version-script,/wrkdirs/share/dim/ports/devel/libnotify/work/libnotify-0.8.2/libnotify/libnotify.map /usr/local/lib/libgdk_pixbuf-2.0.so /usr/local/lib/libgobject-2.0.so /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so /usr/local/lib/libgio-2.0.so -Wl,--end-group
ld: error: version script assignment of 'global' to symbol '__progname' failed: symbol not defined
ld: error: version script assignment of 'global' to symbol 'environ' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts.
Apparently the __progname and environ symbols (which usually come from
libc, not libnotify.so) were explicitly added in:
commit 0b0b10cff8
Author: Baptiste Daroussin <bapt@FreeBSD.org>
Date: 2019-12-16T19:40:37+01:00
Fix build with old binutils.
Somehow linker scripts should not hide __progname and environ from symbols.
Reported by: kib
but it is unclear what the original error was, or how old "old" is, and
there is no reference to a PR.
In any case, I think the patch-libnotify_libnotify.map file can simply
be deleted now.
PR: 274108
Approved by: maintainer timeout (10 days)
MFH: 2023Q4
Building java/openjdk8 with lld 17 results in the following link error:
Making SA debugger back-end...
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_getpid' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_lcontinue' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_lgetxmmregs' failed: symbol not defined
ld: error: version script assignment of 'SUNWprivate_1.1' to symbol 'ps_lsetxmmregs' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts. Since there are many of these in
openjdk 8, suppress the errors by adding -Wl,--undefined-version to the
--with-extra-ldflags configure option.
PR: 274106
Approved by: maintainer timeout (10 days)
MFH: 2023Q4
Building devel/gamin with lld 17 results in the following link error:
cc -shared .libs/gam_api.o .libs/gam_data.o .libs/gam_fork.o .libs/gam_error.o .libs/gam_event.o -lpthread -L/usr/local/lib -fstack-protector-strong -Wl,--version-script=./gamin_sym.version -fstack-protector-strong -Wl,-soname -Wl,libfam.so.0 -o .libs/libfam.so.0.0.0
ld: error: version script assignment of 'global' to symbol 'FAMDebugLevel' failed: symbol not defined
ld: error: version script assignment of 'global' to symbol 'FAMDebug' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because the FAMDebugLevel and FAMDebug symbols are only defined
when gamin is configured with --enable-debug, which we have no option
for in the port.
So fix it by removing the undefined symbols from the linker version
script.
PR: 274089
MFH: 2023Q4
When building relatively recent gcc ports (with C++ in them) against
libc++ 17, you get errors similar to:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute only applies to structs, variables, functions, and namespaces
546 | _LIBCPP_INLINE_VISIBILITY
| ^
/usr/include/c++/v1/__config:813:37: note: expanded from macro '_LIBCPP_INLINE_VISIBILITY'
813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
| ^
/usr/include/c++/v1/__config:792:26: note: expanded from macro '_LIBCPP_HIDE_FROM_ABI'
792 | __attribute__((__abi_tag__(_LIBCPP_TOSTRING(_LIBCPP_VERSIONED_IDENTIFIER))))
| ^
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:547:37: error: expected ';' at end of declaration list
547 | char_type toupper(char_type __c) const
| ^
/usr/include/c++/v1/__locale:553:48: error: too many arguments provided to function-like macro invocation
553 | const char_type* toupper(char_type* __low, const char_type* __high) const
| ^
/wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/../include/safe-ctype.h:146:9: note: macro 'toupper' defined here
146 | #define toupper(c) do_not_use_toupper_with_safe_ctype
| ^
This is because gcc/system.h includes safe-ctype.h which redefines ctype
macros such as toupper, tolower, etc to "poison" them.
However, it should only include the safe-ctype.h header *after* any C++
headers, such as <list>, <map>, <string>, etc, otherwise these might
transitively include internal ctype headers (such as with libc++ 17),
causing the above conflicts.
Fix it by moving the safe-ctype.h inclusion to later in gcc/system.h,
which solves this issue, and makes it possible to build against libc++
17.
See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632
PR: 274042
Approved by: salvadore (maintainer)
MFH: 2023Q4
When building relatively recent gcc ports (with C++ in them) against
libc++ 17, you get errors similar to:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute only applies to structs, variables, functions, and namespaces
546 | _LIBCPP_INLINE_VISIBILITY
| ^
/usr/include/c++/v1/__config:813:37: note: expanded from macro '_LIBCPP_INLINE_VISIBILITY'
813 | # define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
| ^
/usr/include/c++/v1/__config:792:26: note: expanded from macro '_LIBCPP_HIDE_FROM_ABI'
792 | __attribute__((__abi_tag__(_LIBCPP_TOSTRING(_LIBCPP_VERSIONED_IDENTIFIER))))
| ^
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/cp/module.cc:208:
In file included from /wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/system.h:239:
In file included from /usr/include/c++/v1/vector:321:
In file included from /usr/include/c++/v1/__format/formatter_bool.h:20:
In file included from /usr/include/c++/v1/__format/formatter_integral.h:32:
In file included from /usr/include/c++/v1/locale:202:
/usr/include/c++/v1/__locale:547:37: error: expected ';' at end of declaration list
547 | char_type toupper(char_type __c) const
| ^
/usr/include/c++/v1/__locale:553:48: error: too many arguments provided to function-like macro invocation
553 | const char_type* toupper(char_type* __low, const char_type* __high) const
| ^
/wrkdirs/usr/ports/lang/gcc12/work/gcc-12.2.0/gcc/../include/safe-ctype.h:146:9: note: macro 'toupper' defined here
146 | #define toupper(c) do_not_use_toupper_with_safe_ctype
| ^
This is because gcc/system.h includes safe-ctype.h which redefines ctype
macros such as toupper, tolower, etc to "poison" them.
However, it should only include the safe-ctype.h header *after* any C++
headers, such as <list>, <map>, <string>, etc, otherwise these might
transitively include internal ctype headers (such as with libc++ 17),
causing the above conflicts.
Fix it by moving the safe-ctype.h inclusion to later in gcc/system.h,
which solves this issue, and makes it possible to build against libc++
17.
See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632
PR: 274041
Approved by: salvadore (maintainer)
MFH: 2023Q4
Building devel/talloc with lld 17 results in the following link error:
08:58:52 runner ['cc', '-Wl,--version-script=/wrkdirs/usr/ports/devel/talloc/work/talloc-2.3.4/bin/default/talloc.vscript', '-shared', '-Wl,-h,libtalloc.so.2', 'talloc.c.6.o', 'lib/replace/replace.c.2.o', 'lib/replace/strptime.c.2.o', 'lib/replace/xattr.c.2.o', '-o/wrkdirs/usr/ports/devel/talloc/work/talloc-2.3.4/bin/default/libtalloc.so', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-fstack-protector-strong', '-Wl,-no-undefined']
ld: error: version script assignment of 'local' to symbol '_end' failed: symbol not defined
ld: error: version script assignment of 'local' to symbol '__bss_start' failed: symbol not defined
ld: error: version script assignment of 'local' to symbol '_edata' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
script file to fix the error.
Since the linker version scripts are generated dynamically, suppress
errors with lld >= 17 due to these undefined symbols.
PR: 274000
Approved by: maintainer timeout (2 weeks)
MFH: 2023Q4
Building devel/elfutils with lld 17 results in the following link error:
cc -std=gnu99 -Wall -Wshadow -Wformat=2 -Wold-style-definition -Wstrict-prototypes -Wnull-dereference -Wimplicit-fallthrough -Werror -Wunused -Wextra -D_FORTIFY_SOURCE=3 -O2 -pipe -I/usr/local/include -I/usr/local/share/gnulib/lib -Wno-error -Wno-format-nonliteral -Wno-null-dereference -Wno-unused-value -DFREEBSD_HAS_MEMPCPY -fstack-protector-strong -fno-strict-aliasing /usr/local/lib/libargp.so /usr/local/lib/libintl.so -fstack-protector-strong -Wl,--build-id -o libelf.so -shared -Wl,-z,defs -Wl,-z,relro -o libelf.so \
-Wl,--soname,libelf.so.1 \
-Wl,--version-script,libelf.map,--no-undefined \
-Wl,--whole-archive libelf_pic.a -Wl,--no-whole-archive \
../lib/libeu.a -lz
ld: error: version script assignment of 'ELFUTILS_1.0' to symbol 'elf_scncnt' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
Upstream removed the symbol which apparently was never implemented in:
<https://sourceware.org/git/?p=elfutils.git;a=commit;h=09e61a65953ed814d9e970f7f9ffb9c2d8cda477>.
I tried adding this via PATCH_SITES and PATCHFILES, but it looks like
the ports framework chokes on URLs with ? in them, so I'm adding a
regular patch file in devel/elfutils/files/patch-libelf_libelf.map file
instead.
PR: 273998
Approved by: maintainer timeout (2 weeks)
MFH: 2023Q4
Qt uses generated linker version scripts which always have a
qt_version_tag symbol, but that symbol is only defined in the main Qt
shared library. For other Qt components, this leads to lld >= 17
erroring out due to the symbol being undefined. Suppress these errors
from qt-dist.mk, so we don't have to patch each individual port.
This affects at least:
* devel/qt5-dbus
* net/qt5-network
* databases/qt5-sql
which were the first ones to fall over with a clang+lld 17 poudriere
bulk run.
For reference, the error you would see looks like:
...
c++ -Wl,--as-needed -fstack-protector-strong -Wl,--no-undefined -Wl,--version-script,QtDBus.version -pthread -Wl,-rpath,/usr/local/lib/qt5 -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5DBus.so.5 -o libQt5DBus.so.5.15.8 .obj/qdbusconnection.o .obj/qdbusconnectioninterface.o .obj/qdbuserror.o .obj/qdbusintegrator.o .obj/qdbusmessage.o .obj/qdbusserver.o .obj/qdbusabstractinterface.o .obj/qdbusinterface.o .obj/qdbusxmlparser.o .obj/qdbusutil.o .obj/qdbusintrospection.o .obj/qdbusabstractadaptor.o .obj/qdbusinternalfilters.o .obj/qdbusmetaobject.o .obj/qdbusxmlgenerator.o .obj/qdbusmisc.o .obj/qdbusargument.o .obj/qdbusreply.o .obj/qdbusmetatype.o .obj/qdbusextratypes.o .obj/qdbuscontext.o .obj/qdbuspendingcall.o .obj/qdbuspendingreply.o .obj/qdbus_symbols.o .obj/qdbusservicewatcher.o .obj/qdbusunixfiledescriptor.o .obj/qdbusvirtualobject.o .obj/moc_qdbusconnectioninterface.o .obj/moc_qdbuserror.o .obj/moc_qdbusconnection.o .obj/moc_qdbusabstractadaptor.o .obj/moc_qdbusvirtualobject.o .obj/moc_qdbusconnection_p.o .obj/moc_qdbusconnectionmanager_p.o .obj/moc_qdbuspendingcall_p.o -L/wrkdirs/usr/ports/devel/qt5-dbus/work/kde-qtbase-5.15.8p157/lib /usr/local/lib/qt5/libQt5Core.so -L/usr/local/lib -ldbus-1
ld: error: version script assignment of 'Qt_5.15' to symbol 'qt_version_tag' failed: symbol not defined
c++: error: linker command failed with exit code 1 (use -v to see invocation)
PR: 273992
Approved by: maintainer timeout (2 weeks)
MFH: 2023Q4
Some symbols in libfuse.so's linker version script are undefined when
compiling for FreeBSD, which results in errors with lld >= 17. Comment
out the unused symbols to work around these errors.
PR: 273794
Approved by: maintainer timeout (2 weeks)
MFH: 2023Q4
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:10: error: non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned int') to 'LONG' (aka 'int') in initializer list [-Wc++11-narrowing]
{a->dwLowDateTime, (LONG)a->dwHighDateTime}
^~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:10: note: insert an explicit cast to silence this issue
{a->dwLowDateTime, (LONG)a->dwHighDateTime}
^~~~~~~~~~~~~~~~
static_cast<LONG>( )
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:28: error: non-constant-expression cannot be narrowed from type 'LONG' (aka 'int') to 'DWORD' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
{a->dwLowDateTime, (LONG)a->dwHighDateTime}
^~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:534:28: note: insert an explicit cast to silence this issue
{a->dwLowDateTime, (LONG)a->dwHighDateTime}
^~~~~~~~~~~~~~~~~~~~~~~
static_cast<DWORD>( )
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:11: error: non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned int') to 'LONG' (aka 'int') in initializer list [-Wc++11-narrowing]
B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
^~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:11: note: insert an explicit cast to silence this issue
B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
^~~~~~~~~~~~~~~~
static_cast<LONG>( )
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:29: error: non-constant-expression cannot be narrowed from type 'LONG' (aka 'int') to 'DWORD' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
^~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/misc/far2l/work/far2l-v_2.5.2/far2l/src/datetime.cpp:536:29: note: insert an explicit cast to silence this issue
B = {{b->dwLowDateTime, (LONG)b->dwHighDateTime}};
^~~~~~~~~~~~~~~~~~~~~~~
static_cast<DWORD>( )
4 errors generated.
Build cross platform desktop apps with JavaScript, HTML, and CSS.
It's easier than you think.
If you can build a website, you can build a desktop app. Electron is a
framework for creating native applications with web technologies like
JavaScript, HTML, and CSS. It takes care of the hard parts so you can
focus on the core of your application.
WWW: https://electronjs.org/