[Call for testers] "BSD ar"

Alexey Shuvaev shuvaev at physik.uni-wuerzburg.de
Mon Jan 14 09:01:46 PST 2008


On Sat, Jan 12, 2008 at 09:51:34AM +0100, Kai Wang wrote:
> 
> This won't work as GNU ranlib is not merely a hardlink to ar.
> Thus correct way would be:
> 
> 1. Backup your GNU ar and ranlib first:
>    % cp /usr/bin/ar SOME_BACKUP_DIR
>    % cp /usr/bin/ranlib SOME_BACKUP_DIR
>  
> 2. Build BSD ar
>    extract the tarball
>    % cd ar
>    % make
>  
> 3. Replace
>    # cp ./ar /usr/bin/ar
>    # cd /usr/bin
>    # ln -f ar ranlib
> 
> 
> When recover GNU ar:
> 
>    # cp SOME_BACKUP_DIR/ar /usr/bin/ar
>    # cp SOME_BACKUP_DIR/ranlib /usr/bin/ranlib
> 
> Sorry for the mess...
> 
> BTW: I'm working on a patch for -CURRENT as peter@ just suggested.

Ok, first bad news...
Well, maybe not so bad, and maybe not so new...

I have tried to compile editors/openoffice.org-2 on amd64 8-CURRENT
machine. It fails while compiling:

[snip]
=============
Building project nas
=============
/usr/ports/editors/openoffice.org-2/work/OOG680_m9/nas
mkout -- version: 1.7
-------------
[snip]

What it tries to execute exactly is, for example:

[snip]
rm -f libvoxware.a
ar clq libvoxware.a auvoxware.o config.o
usage:  ar -d [-jsvz] archive file ...
        ar -m [-jsvz] archive file ...
        ar -m [-abijsvz] position archive file ...
        ar -p [-v] archive [file ...]
        ar -r [-cjsuvz] archive file ...
        ar -r [-abcijsuvz] position archive file ...
        ar -s [-jz] archive
        ar -t [-v] archive [file ...]
        ar -x [-Couv] archive [file ...]
        ar -V
*** Error code 64
`all' not remade because of errors.
[snip]

>From GNU ar(1) man page, FWIW:

[snip]
       q   Quick  append;  Historically, add the files member... to the end of
           archive, without checking for replacement.

           The modifiers a, b, and i do not affect this operation; new members
           are always placed at the end of the archive.

           The modifier v makes ar list each file as it is appended.

           Since  the  point  of this operation is speed, the archive's symbol
           table index is not updated, even if it already existed; you can use
           ar s or ranlib explicitly to update the symbol table index.

           However,  too  many  different systems assume quick append rebuilds
           the index, so GNU ar implements q as a synonym for r.
[snip]
       c   Create the archive.  The specified archive is always created if  it
           did not exist, when you request an update.  But a warning is issued
           unless you specify in advance that you  expect  to  create  it,  by
           using this modifier.
[snip]
       l   This modifier is accepted but not used.
[snip]

Now I am trying to compile OOo-2 with GNU binutils ar, just to check
it is not the broken port at all.

Thanks nevertheless!

Alexey.


More information about the freebsd-current mailing list