tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

binutils 2.39 vs old unix ar(1)

hi folks.

it seems that binutils 2.39 ar(1) has changed the definition of
the old "l" flag.  on my netbsd-9 system, "man ar" shows:

       l   This modifier is accepted but not used.

but on netbsd-current:

       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"

ie, 'l' now takes an argument and does something.  looking at unix
history, i found that 'l' option appeared in V7 and it meant to
use the local (".") directory for temp files, not /tmp.  so, this
has change has not only assigned a meaning to 'l', but it now wants
an argument supplied as well.

this causes failure for builds that supplied the 'l' flag.  this is
the default for any "ar" usage out of imake, for instance, which is
where the problem surfaces.  any imake-usage package that also
builds archives is currently busted:

   ar clq libutil.a util.o
   ar: libdeps specified more than once

here, "ar clq" is the default value of ${AR}.

i'm not sure of the right answer here, besides calling it an 
upstream bug and hoping they change it back...  for now i've
patched my xorg-cf-files but the solution isn't clear so i have
not commited anything.


Home | Main Index | Thread Index | Old Index