[Bug 260484] x11/xorg-cf-files: Stop using 'l' option with 'ar'

[email protected]
Newsgroups gmane.os.freebsd.devel.x11
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260484

            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: [email protected]
          Reporter: [email protected]
          Assignee: [email protected]
             Flags: maintainer-feedback?([email protected])
             Flags: merge-quarterly?

Created attachment 230189
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=230189&action=edit
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 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.

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.