Bug 198817 - app-arch/cpio-2.9-r1 / app-arch/tar-1.19 extern inline patch
Bug#: 198817 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: base-system@gentoo.org Reported By: dirtyepic@gentoo.org
Component: Core system
URL: 
Summary: app-arch/cpio-2.9-r1 / app-arch/tar-1.19 extern inline patch
Keywords:  
Status Whiteboard: 
Opened: 2007-11-11 15:24 0000
Description:   Opened: 2007-11-11 15:24 0000
cpio uses extern inline in a couple headers, which causes the linker to
complain about duplicate symbol definitions in GCC 4.3 when -std={c,gnu}99 is
used.  attached patch should fix it.

upstream:  http://lists.gnu.org/archive/html/bug-cpio/2007-09/msg00002.html

------- Comment #1 From Ryan Hill 2007-11-11 15:25:33 0000 -------
Created an attachment (id=135748) [details]
cpio-2.9_gcc43-inline.patch

------- Comment #2 From Ryan Hill 2007-11-11 15:26:29 0000 -------
x86_64-pc-linux-gnu-gcc -std=gnu99  -O2 -g -march=native -fomit-frame-pointer
-pipe  -Wl,-O1,--hash-style=gnu -o cpio  copyin.o copyout.o copypass.o defer.o
dstring.o global.o main.o tar.o util.o filemode.o idcache.o makepath.o
userspec.o ../lib/libcpio.a
../lib/libcpio.a(argp-help.o): In function `_option_is_end':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:607: multiple
definition of `_option_is_end'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:607:
first defined here
../lib/libcpio.a(argp-help.o): In function `_option_is_short':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:594: multiple
definition of `_option_is_short'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:594:
first defined here
../lib/libcpio.a(argp-help.o): In function `argp_usage':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:589: multiple
definition of `argp_usage'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:589:
first defined here
../lib/libcpio.a(argp-parse.o): In function `_option_is_end':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:607: multiple
definition of `_option_is_end'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:607:
first defined here
../lib/libcpio.a(argp-parse.o): In function `argp_usage':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:589: multiple
definition of `argp_usage'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:589:
first defined here
../lib/libcpio.a(argp-parse.o): In function `_option_is_short':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:594: multiple
definition of `_option_is_short'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:594:
first defined here
../lib/libcpio.a(argp-pvh.o): In function `_option_is_end':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:607: multiple
definition of `_option_is_end'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:607:
first defined here
../lib/libcpio.a(argp-pvh.o): In function `_option_is_short':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:594: multiple
definition of `_option_is_short'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:594:
first defined here
../lib/libcpio.a(argp-pvh.o): In function `argp_usage':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:589: multiple
definition of `argp_usage'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:589:
first defined here
../lib/libcpio.a(argp-eexst.o): In function `_option_is_end':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:607: multiple
definition of `_option_is_end'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:607:
first defined here
../lib/libcpio.a(argp-eexst.o): In function `_option_is_short':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:594: multiple
definition of `_option_is_short'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:594:
first defined here
../lib/libcpio.a(argp-eexst.o): In function `argp_usage':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp.h:589: multiple
definition of `argp_usage'
main.o:/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src/../lib/argp.h:589:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_putc':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:233:
multiple definition of `argp_fmtstream_putc'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:233:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_point':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:279:
multiple definition of `argp_fmtstream_point'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:279:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_set_wmargin':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:267:
multiple definition of `argp_fmtstream_set_wmargin'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:267:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_set_rmargin':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:255:
multiple definition of `argp_fmtstream_set_rmargin'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:255:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_set_lmargin':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:243:
multiple definition of `argp_fmtstream_set_lmargin'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:243:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_write':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:207:
multiple definition of `argp_fmtstream_write'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:207:
first defined here
../lib/libcpio.a(argp-fmtstream.o): In function `argp_fmtstream_puts':
/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:220:
multiple definition of `argp_fmtstream_puts'
../lib/libcpio.a(argp-help.o):/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/lib/argp-fmtstream.h:220:
first defined here
collect2: ld returned 1 exit status
make[2]: *** [cpio] Error 1
make[2]: Leaving directory
`/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/app-arch/cpio-2.9-r1/work/cpio-2.9'
make: *** [all] Error 2
 *
 * ERROR: app-arch/cpio-2.9-r1 failed.

------- Comment #3 From Ryan Hill 2007-11-11 15:36:27 0000 -------
and of course this also applies to tar-1.19.

------- Comment #4 From SpanKY 2007-11-18 02:46:12 0000 -------
patches that actually get merged are highly preferred over what gets posted to
$random-mailing-list

i grabbed the commits from the gnulib git repo and tossed it into latest
cpio/tar ebuilds, cheers

------- Comment #5 From Ryan Hill 2007-12-20 00:07:30 0000 -------
*** Bug 202815 has been marked as a duplicate of this bug. ***

------- Comment #6 From Jakub Moc (RETIRED) 2008-03-22 10:07:41 0000 -------
*** Bug 214227 has been marked as a duplicate of this bug. ***