Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Sep 2023 14:24:53 +0000
From:      bugzilla-noreply@freebsd.org
To:        desktop@FreeBSD.org
Subject:   maintainer-feedback requested: [Bug 274108] devel/libnotify: fix build with lld 17
Message-ID:  <bug-274108-39348-PX1QWBphxU@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-274108-39348@https.bugs.freebsd.org/bugzilla/>
References:  <bug-274108-39348@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-desktop (Team)
<desktop@FreeBSD.org> for maintainer-feedback:
Bug 274108: devel/libnotify: fix build with lld 17
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D274108



--- Description ---
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/libnotif=
y-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' fai=
led:
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 refere=
nced
in linker version scripts.

Apparently the __progname and environ symbols (which usually come from libc,
not libnotify.so) were explicitly added in:

commit 0b0b10cff8d7b5ed08d11c6fa4d66e1977d6eb79
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 symb=
ols.

    Reported by:    kib

but it is unclear what the original error was, or how old "old" is, and the=
re
is no reference to a PR.

In any case, I think the devel/libnotify/files/patch-libnotify_libnotify.map
file can simply be deleted now.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-274108-39348-PX1QWBphxU>