[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
4.0.4: Multiple definitions of program_name
- From: Albert Chin <rpm-list thewrittenword com>
- To: rpm-list redhat com
- Subject: 4.0.4: Multiple definitions of program_name
- Date: Sun, 12 May 2002 20:12:12 -0500
The IRIX linker complains when created the RPM executables about
multiple definitions of program_name:
/bin/sh ../libtool --mode=link cc -Wl,-woff,84 -Wl,-woff,85 -woff
1429 -O2 -L/opt/TWWfsw/bzip2s/lib -L/opt/TWWfsw/libdb40s/lib
-L/opt/TWWfsw/zlib11s/lib -o rpmsignature rpmsignature.o
../build/librpmbuild.la ../lib/librpm.la
../rpmdb/librpmdb.la ../rpmio/librpmio.la ../popt/libpopt.la
../beecrypt/libbeecrypt.la ../intl/libintl.a
cc -Wl,-woff -Wl,84 -Wl,-woff -Wl,85 -woff 1429 -O2 -o rpmsignature
rpmsignature.o -L/opt/TWWfsw/bzip2s/lib -L/opt/TWWfsw/libdb40s/lib
-L/opt/TWWfsw/zlib11s/lib ../build/.libs/librpmbuild.a
../lib/.libs/librpm.a ../rpmdb/.libs/librpmdb.a -ldb
../rpmio/.libs/librpmio.a /opt/TWWfsw/zlib11s/lib/libz.a
/opt/TWWfsw/bzip2s/lib/libbz2.a ../popt/.libs/libpopt.a
../beecrypt/.libs/libbeecrypt.a -lpthread ../intl/libintl.a
ld32: WARNING 15 : Multiply defined:(program_name) in rpmsignature.o
and ../lib/.libs/librpm.a(rpmlead.o) (2nd definition ignored).
ld32: WARNING 15 : Multiply defined:(program_name) in rpmsignature.o
and ../lib/.libs/librpm.a(signature.o) (2nd definition ignored).
...
/bin/sh ../libtool --mode=link cc -Wl,-woff,84 -Wl,-woff,85 -woff
1429 -O2 -L/opt/TWWfsw/bzip2s/lib -L/opt/TWWfsw/libdb40s/lib
-L/opt/TWWfsw/zlib11s/lib -o rpmlead rpmlead.o
../build/librpmbuild.la ../lib/librpm.la
../rpmdb/librpmdb.la ../rpmio/librpmio.la ../popt/libpopt.la
../beecrypt/libbeecrypt.la ../intl/libintl.a
cc -Wl,-woff -Wl,84 -Wl,-woff -Wl,85 -woff 1429 -O2 -o rpmlead
rpmlead.o -L/opt/TWWfsw/bzip2s/lib -L/opt/TWWfsw/libdb40s/lib
-L/opt/TWWfsw/zlib11s/lib ../build/.libs/librpmbuild.a
../lib/.libs/librpm.a ../rpmdb/.libs/librpmdb.a -ldb
../rpmio/.libs/librpmio.a /opt/TWWfsw/zlib11s/lib/libz.a
/opt/TWWfsw/bzip2s/lib/libbz2.a ../popt/.libs/libpopt.a
../beecrypt/.libs/libbeecrypt.a -lpthread ../intl/libintl.a
ld32: WARNING 15 : Multiply defined:(program_name) in rpmlead.o and
../lib/.libs/librpm.a(rpmlead.o) (2nd definition ignored).
ld32: WARNING 15 : Multiply defined:(program_name) in rpmlead.o and
../rpmio/.libs/librpmio.a(rpmio.o) (2nd definition ignored).
...
This is because program_name is defined in system.h:
/* Retrofit glibc __progname */
#if defined __GLIBC__ && __GLIBC__ >= 2
#if __GLIBC_MINOR__ >= 1
#define __progname __assert_program_name
#endif
#define setprogname(pn)
#else
#define __progname program_name
#define setprogname(pn) \
{ if ((__progname = strrchr(pn, '/')) != NULL) __progname++; \
else __progname = pn; \
}
#endif
const char *__progname;
Any chance of alleviating these warnings? Maybe the .c file contain
main() of each of the RPM programs could #define PROGNAME_DEFINE
before #include "system.h" and then modify system.h to:
#ifdef PROGNAME_DEFINE
const char *__progname;
#else
extern const char *__progname;
#endif
NOTE, the executable is still created. I haven't tested yet though
(rpm --help worked though).
--
albert chin (china@thewrittenword.com)
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[]