Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Dec 2021 02:50:40 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 260484] x11/xorg-cf-files: Stop using 'l' option with 'ar'
Message-ID:  <bug-260484-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D260484

            Bug ID: 260484
           Summary: x11/xorg-cf-files: Stop using 'l' option with 'ar'
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: x11@FreeBSD.org
          Reporter: yasu@freebsd.org
          Assignee: x11@FreeBSD.org
             Flags: maintainer-feedback?(x11@FreeBSD.org)
             Flags: merge-quarterly?

Created attachment 230189
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D230189&action=
=3Dedit
Patch file

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 followi=
ng.

       l   Specify dependencies of this library.  The dependencies must
           immediately follow this option character, must use the same synt=
ax
           as the linker command line, and must be specified within a single
           argument.  I.e., if multiple items are needed, they must be quot=
ed
           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=3Dimake' 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 f=
ine
even if devel/binutils isn't installed and 'ar' of base system is used.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



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