Volker Englisch
2008-05-23 08:24:36 UTC
Hallo,
um das Schönheitsproblem mit den LongLinks loszuwerden, möchte ich auf
einem alten Linux eine neuere Version von TAR bauen. Es ist ein Debian
2.0 mit TAR 1.12 (keine Angst, der Rechner hat keine
Internetverbindung). Das jeweilige ./configure endet übrigens ohne
Fehler.
Ein Versuch mit TAR 1.14 endet damit:
Making all in src
make[2]: Entering directory `/usr/src/tar-1.14/src'
gcc -g -O2 -o tar buffer.o compare.o create.o delete.o extract.o \
xheader.o incremen.o list.o mangle.o misc.o names.o rtapelib.o \
sparse.o system.o tar.o update.o utf8.o ../lib/libtar.a
list.o: In function `list_archive':
/usr/src/tar-1.14/src/list.c:240: undefined reference to `fwrite_unlocked'
make[2]: *** [tar] Error 1
make[2]: Leaving directory `/usr/src/tar-1.14/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/tar-1.14'
make: *** [all] Error 2
--------------------------------- cut ---------------------------------
Ein Versuch mit TAR 1.15.1 bringt:
gcc -g -O2 -o tar buffer.o compare.o create.o delete.o extract.o \
xheader.o incremen.o list.o mangle.o misc.o names.o sparse.o \
system.o tar.o update.o utf8.o ../lib/libtar.a \
/usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
list.o: In function `list_archive':
/usr/src/tar-1.15.1/src/list.c:242: undefined reference to `fwrite_unlocked'
../lib/libtar.a(argp-fmtstream.o): In function `argp_fmtstream_free':
/usr/src/tar-1.15.1/lib/argp-fmtstream.c:108: undefined reference to \
`fwrite_unlocked'
../lib/libtar.a(argp-fmtstream.o): In function `_argp_fmtstream_update':
/usr/src/tar-1.15.1/lib/argp-fmtstream.c:301: undefined reference to \
`fwrite_unlocked'
../lib/libtar.a(argp-fmtstream.o): In function `_argp_fmtstream_ensure':
/usr/src/tar-1.15.1/lib/argp-fmtstream.c:370: undefined reference to \
`fwrite_unlocked'
make[2]: *** [tar] Error 1
make[2]: Leaving directory `/usr/src/tar-1.15.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/tar-1.15.1'
make: *** [all] Error 2
--------------------------------- cut ---------------------------------
Und mit TAR 1.16 und neueren:
gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c xstrtoumax.c
In file included from xstrtol.h:25,
from xstrtol.c:32,
from xstrtoumax.c:6:
inttypes.h:167: two `l's in integer constant
inttypes.h:184: two `l's in integer constant
inttypes.h:485: two `l's in integer constant
inttypes.h:493: two `l's in integer constant
inttypes.h:501: two `l's in integer constant
inttypes.h:509: two `l's in integer constant
inttypes.h:517: two `l's in integer constant
inttypes.h:525: two `l's in integer constant
inttypes.h:660: two `l's in integer constant
inttypes.h:677: two `l's in integer constant
inttypes.h:960: two `l's in integer constant
inttypes.h:968: two `l's in integer constant
inttypes.h:976: two `l's in integer constant
inttypes.h:984: two `l's in integer constant
inttypes.h:992: two `l's in integer constant
make[3]: *** [xstrtoumax.o] Error 1
make[3]: Leaving directory `/usr/src/tar-1.16.1/lib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/tar-1.16.1/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/tar-1.16.1'
make: *** [all] Error 2
--------------------------------- cut ---------------------------------
Ich habe zugegebenerweise von C keine Ahnung. Das mit den "zwei l's"
kann ich nicht nachvollziehen, in der inttypes.h ist dort nur eine
Zuweisung mit einem "l".
Jeder Hinweis der zum vollständigen Compilieren führen könnte, wird mit
gebührendem Dank gewürdigt :-)
TIA
V.
um das Schönheitsproblem mit den LongLinks loszuwerden, möchte ich auf
einem alten Linux eine neuere Version von TAR bauen. Es ist ein Debian
2.0 mit TAR 1.12 (keine Angst, der Rechner hat keine
Internetverbindung). Das jeweilige ./configure endet übrigens ohne
Fehler.
Ein Versuch mit TAR 1.14 endet damit:
Making all in src
make[2]: Entering directory `/usr/src/tar-1.14/src'
gcc -g -O2 -o tar buffer.o compare.o create.o delete.o extract.o \
xheader.o incremen.o list.o mangle.o misc.o names.o rtapelib.o \
sparse.o system.o tar.o update.o utf8.o ../lib/libtar.a
list.o: In function `list_archive':
/usr/src/tar-1.14/src/list.c:240: undefined reference to `fwrite_unlocked'
make[2]: *** [tar] Error 1
make[2]: Leaving directory `/usr/src/tar-1.14/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/tar-1.14'
make: *** [all] Error 2
--------------------------------- cut ---------------------------------
Ein Versuch mit TAR 1.15.1 bringt:
gcc -g -O2 -o tar buffer.o compare.o create.o delete.o extract.o \
xheader.o incremen.o list.o mangle.o misc.o names.o sparse.o \
system.o tar.o update.o utf8.o ../lib/libtar.a \
/usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
list.o: In function `list_archive':
/usr/src/tar-1.15.1/src/list.c:242: undefined reference to `fwrite_unlocked'
../lib/libtar.a(argp-fmtstream.o): In function `argp_fmtstream_free':
/usr/src/tar-1.15.1/lib/argp-fmtstream.c:108: undefined reference to \
`fwrite_unlocked'
../lib/libtar.a(argp-fmtstream.o): In function `_argp_fmtstream_update':
/usr/src/tar-1.15.1/lib/argp-fmtstream.c:301: undefined reference to \
`fwrite_unlocked'
../lib/libtar.a(argp-fmtstream.o): In function `_argp_fmtstream_ensure':
/usr/src/tar-1.15.1/lib/argp-fmtstream.c:370: undefined reference to \
`fwrite_unlocked'
make[2]: *** [tar] Error 1
make[2]: Leaving directory `/usr/src/tar-1.15.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/tar-1.15.1'
make: *** [all] Error 2
--------------------------------- cut ---------------------------------
Und mit TAR 1.16 und neueren:
gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c xstrtoumax.c
In file included from xstrtol.h:25,
from xstrtol.c:32,
from xstrtoumax.c:6:
inttypes.h:167: two `l's in integer constant
inttypes.h:184: two `l's in integer constant
inttypes.h:485: two `l's in integer constant
inttypes.h:493: two `l's in integer constant
inttypes.h:501: two `l's in integer constant
inttypes.h:509: two `l's in integer constant
inttypes.h:517: two `l's in integer constant
inttypes.h:525: two `l's in integer constant
inttypes.h:660: two `l's in integer constant
inttypes.h:677: two `l's in integer constant
inttypes.h:960: two `l's in integer constant
inttypes.h:968: two `l's in integer constant
inttypes.h:976: two `l's in integer constant
inttypes.h:984: two `l's in integer constant
inttypes.h:992: two `l's in integer constant
make[3]: *** [xstrtoumax.o] Error 1
make[3]: Leaving directory `/usr/src/tar-1.16.1/lib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/tar-1.16.1/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/tar-1.16.1'
make: *** [all] Error 2
--------------------------------- cut ---------------------------------
Ich habe zugegebenerweise von C keine Ahnung. Das mit den "zwei l's"
kann ich nicht nachvollziehen, in der inttypes.h ist dort nur eine
Zuweisung mit einem "l".
Jeder Hinweis der zum vollständigen Compilieren führen könnte, wird mit
gebührendem Dank gewürdigt :-)
TIA
V.