Source: dpkg
Source-Version: 1.14.18
This does not fix the problem for me. With the current version the
compilation stops with:
gcc -std=gnu99 -g -O2 -Wl,-O1 -o dpkg archives.o cleanup.o configure.o
depcon.o enquiry.o errors.o filesdb.o help.o main.o packages.o
processarc.o remove.o select.o trigproc.o update.o
../libcompat/libcompat.a -lintl ../lib/libdpkg.a
../lib/libdpkg.a(tarfn.o): In function `StoC':
/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/lib/tarfn.c:65:
undefined reference to `strnlen'
collect2: ld returned 1 exit status
make[2]: *** [dpkg] Error 1
make[2]: Leaving directory
`/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/build/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/build'
make: *** [all] Error 2
The configure script sees no strnlen:
[from config.log]
checking for strnlen... no
and also the compat strnlen is build:
[from make output]
Making all in libcompat
make[2]: Entering directory
`/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/build/libcompat'
gcc -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/libcompat -I..
-idirafter
/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/libcompat -g -O2
-MT obstack.o -MD -MP -MF .deps/obstack.Tpo -c -o obstack.o
/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/libcompat/obstack.c
mv -f .deps/obstack.Tpo .deps/obstack.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/libcompat -I..
-idirafter
/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/libcompat -g -O2
-MT strnlen.o -MD -MP -MF .deps/strnlen.Tpo -c -o strnlen.o
/opt/gnu4u/pkg/0/0/64/build/stageP_dpkg/dpkg-1.14.18/libcompat/strnlen.c
mv -f .deps/strnlen.Tpo .deps/strnlen.Po
rm -f libcompat.a
ar cru libcompat.a obstack.o strnlen.o
ranlib libcompat.a
It's realy definded in the libcompat:
> nm libcompat/libcompat.a | fgrep strnlen
strnlen.o:
00000000 T strnlen
*BUT* (and this is IMHO the problem), libdpkg.a needs strnlen:
> nm lib/libdpkg.a | fgrep strnlen
U strnlen
So IMHO the ../libcompat/libcompat.a should be after the
../lib/libdpkg.a. And this is true for at least 'dpkg', 'dpkg-query',
'dpkg-trigger', 'dpkg-deb'.
(The later ones miss some _obstack_XXX functions.)
My environment:
SunOS 5.10 Generic_118833-33 sun4u sparc Solaris
gcc 4.3.0 / binutils 2.18
The attached patch solves the problem for me, but I don't know the
(intended) dependencies between libcompat, libdpkg and $(LIBINTL).
Regards
Andreas Florath
======================================================================
diff -r -u dpkg-1.14.18_orig/dpkg-deb/Makefile.am
dpkg-1.14.18/dpkg-deb/Makefile.am
--- dpkg-1.14.18_orig/dpkg-deb/Makefile.am 2008-04-09
08:35:16.000000000 +0200
+++ dpkg-1.14.18/dpkg-deb/Makefile.am 2008-05-23 16:13:17.575618000 +0200
@@ -17,5 +17,5 @@
main.c
dpkg_deb_LDADD = \
- ../libcompat/libcompat.a \
- $(LIBINTL) ../lib/libdpkg.a $(ZLIB_LIBS) $(BZ2_LIBS) $(SELINUX_LIBS)
+ ../lib/libdpkg.a ../libcompat/libcompat.a \
+ $(LIBINTL) $(ZLIB_LIBS) $(BZ2_LIBS) $(SELINUX_LIBS)
diff -r -u dpkg-1.14.18_orig/dpkg-split/Makefile.am
dpkg-1.14.18/dpkg-split/Makefile.am
--- dpkg-1.14.18_orig/dpkg-split/Makefile.am 2008-04-09
08:35:16.000000000 +0200
+++ dpkg-1.14.18/dpkg-split/Makefile.am 2008-05-23 16:13:33.952855000 +0200
@@ -19,9 +19,9 @@
split.c
dpkg_split_LDADD = \
+ ../lib/libdpkg.a \
../libcompat/libcompat.a \
- $(LIBINTL) \
- ../lib/libdpkg.a
+ $(LIBINTL)
pkglib_SCRIPTS = mksplit
diff -r -u dpkg-1.14.18_orig/src/Makefile.am dpkg-1.14.18/src/Makefile.am
--- dpkg-1.14.18_orig/src/Makefile.am 2008-04-09 08:35:17.000000000 +0200
+++ dpkg-1.14.18/src/Makefile.am 2008-05-23 16:12:52.448082000 +0200
@@ -28,8 +28,8 @@
update.c
dpkg_LDADD = \
- ../libcompat/libcompat.a \
- $(LIBINTL) ../lib/libdpkg.a $(ZLIB_LIBS) $(BZ2_LIBS) $(SELINUX_LIBS)
+ ../lib/libdpkg.a ../libcompat/libcompat.a \
+ $(LIBINTL) $(ZLIB_LIBS) $(BZ2_LIBS) $(SELINUX_LIBS)
dpkg_query_SOURCES = \
errors.c \
@@ -37,17 +37,17 @@
query.c
dpkg_query_LDADD = \
+ ../lib/libdpkg.a \
../libcompat/libcompat.a \
- $(LIBINTL) \
- ../lib/libdpkg.a
+ $(LIBINTL)
dpkg_trigger_SOURCES = \
trigcmd.c
dpkg_trigger_LDADD = \
+ ../lib/libdpkg.a \
../libcompat/libcompat.a \
- $(LIBINTL) \
- ../lib/libdpkg.a
+ $(LIBINTL)
install-data-local:
$(mkdir_p) $(DESTDIR)$(admindir)/alternatives
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]