maintainer-feedback requested: [Bug 260484] x11/xorg-cf-files: Stop using 'l' option with 'ar'
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 260484] x11/xorg-cf-files: Stop using 'l' option with 'ar'"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 17 Dec 2021 02:50:40 UTC
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-x11 (Nobody) <x11@FreeBSD.org> for maintainer-feedback: Bug 260484: x11/xorg-cf-files: Stop using 'l' option with 'ar' https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260484 --- Description --- In the ar(1) man page of base system 'l' option is explained as following. -l This option is accepted for compatibility with GNU ar(1), but is ignored. However, since binutils 2.36 GNU ar changed the meaning of 'l' option. According to the ar(1) man page of binutils 2.37 it is explained as following. l Specify dependencies of this library. The dependencies must immediately follow this option character, must use the same syntax as the linker command line, and must be specified within a single argument. I.e., if multiple items are needed, they must be quoted to form a single command line argument. For example L "-L/usr/local/lib -lmydep1 -lmydep2" And this incompatible change affects to the build of ports that uses 'USES=imake' if devel/binutils is installed and /usr/local/bin is before /usr/bin in the value of PATH environment variable. For example build of textproc/docbook-to-man fails as following. rm -f libtptregexp.a ar clq libtptregexp.a regexp.o regsub.o regerror.o ar: libdeps specified more than once *** Error code 1 Stop. make[3]: stopped in /usr0/freebsd/ports/work/usr/ports/textproc/docbook-to-man/work/docbook-to-man/ Instant/tptregexp *** Error code 1 Stop. make[2]: stopped in /usr0/freebsd/ports/work/usr/ports/textproc/docbook-to-man/work/docbook-to-man/ Instant *** Error code 1 Stop. make[1]: stopped in /usr0/freebsd/ports/work/usr/ports/textproc/docbook-to-man/work/docbook-to-man *** Error code 1 Stop. make: stopped in /usr/ports/textproc/docbook-to-man Therefore change Imake.tmpl so 'l' options isn't used with 'ar'. As is explained above 'ar' of base system ignores 'l' option. So it should work fine even if devel/binutils isn't installed and 'ar' of base system is used.