This might be due to glibc-2.18 but I'm not 100% sure. Happens under ~amd64 no-multilib profile with glibc-2.18 and gcc-4.8.1 and also 4.7.3. This is newly emerged minimal system under KVM for testing purposes, let's not talk about ricers here ;) Does not happen under multilib with glibc-2.17. configure: creating ./config.status config.status: creating src/sandbox.sh config.status: creating Makefile config.status: creating data/Makefile config.status: creating etc/Makefile config.status: creating etc/sandbox.d/00default config.status: creating etc/sandbox.d/Makefile config.status: creating libsandbox/Makefile config.status: creating libsbutil/Makefile config.status: creating scripts/Makefile config.status: creating src/Makefile config.status: creating tests/atlocal config.status: creating tests/Makefile config.status: creating tests/package.m4 config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands config.status: executing tests/atconfig commands * Running sb_compile for ABI=amd64... make -j8 GEN headers.h.gch GEN libsandbox/headers.h.gch GEN libsbutil/headers.h.gch In file included from ../sandbox-2.6/headers.h:137:0: /usr/include/linux/ptrace.h:58:8: error: redefinition of ‘struct ptrace_peeksiginfo_args’ struct ptrace_peeksiginfo_args { ^ In file included from ../sandbox-2.6/headers.h:105:0: /usr/include/sys/ptrace.h:191:8: note: originally defined here struct ptrace_peeksiginfo_args ^ In file included from ../sandbox-2.6/headers.h:137:0: /usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args' struct ptrace_peeksiginfo_args { ^ In file included from ../sandbox-2.6/headers.h:105:0: /usr/include/sys/ptrace.h:191:8: note: originally defined here struct ptrace_peeksiginfo_args ^ In file included from ../sandbox-2.6/headers.h:137:0: /usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args' struct ptrace_peeksiginfo_args { ^ In file included from ../sandbox-2.6/headers.h:105:0: /usr/include/sys/ptrace.h:191:8: note: originally defined here struct ptrace_peeksiginfo_args ^ make: *** [headers.h.gch] Error 1 make: *** Waiting for unfinished jobs.... make: *** [libsandbox/headers.h.gch] Error 1 make: *** [libsbutil/headers.h.gch] Error 1 emake failed * ERROR: sys-apps/sandbox-2.6-r1::gentoo failed (compile phase): * (no error message) dell-kvm ~ # emerge --info Portage 2.2.1 (default/linux/amd64/13.0/no-multilib, gcc-4.8.1, glibc-2.18, 3.10.9-gentoo x86_64) ================================================================= System uname: Linux-3.10.9-gentoo-x86_64-Intel_Core_i7_9xx_-Nehalem_Class_Core_i7-with-gentoo-2.2 KiB Mem: 4043152 total, 3822512 free KiB Swap: 2097148 total, 2097148 free Timestamp of tree: Tue, 27 Aug 2013 10:00:01 +0000 ld GNU ld (GNU Binutils) 2.23.2 app-shells/bash: 4.2_p45 dev-lang/python: 2.7.5-r2, 3.2.5-r2, 3.3.2-r2 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.12 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.69 sys-devel/automake: 1.12.6, 1.14 sys-devel/binutils: 2.23.2 sys-devel/gcc: 4.7.3, 4.8.1 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.10 (virtual/os-headers) sys-libs/glibc: 2.18 Repositories: gentoo ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* @EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=corei7" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=corei7" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="gentoo.prz.rzeszow.pl" LANG="pl_PL.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j8" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" USE="acl amd64 berkdb bzip2 cli cracklib crypt cxx dri gd gdbm iconv ipv6 mmx modules mudflap ncurses nls nptl openmp pam pcre readline session sse sse2 ssl symlink systemd tcpd unicode zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="vesa radeon r600" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
There is very similar compile error here: http://valgrind.10908.n7.nabble.com/valgrind-r13471-do-not-include-linux-ptrace-h-in-vgdb-c-td46073.html
Please attach the entire build log to this bug report.
Here you go: cat /var/tmp/portage/sys-apps/sandbox-2.6-r1/temp/build.log * Package: sys-apps/sandbox-2.6-r1 * Repository: gentoo * Maintainer: sandbox@gentoo.org * USE: abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU * FEATURES: preserve-libs sandbox userpriv usersandbox >>> Unpacking source... >>> Unpacking sandbox-2.6.tar.xz to /var/tmp/portage/sys-apps/sandbox-2.6-r1/work * Applying sandbox-2.6-trace-hppa.patch ... [ ok ] * Applying sandbox-2.6-log-var.patch ... [ ok ] * Applying sandbox-2.6-static-close-fd.patch ... [ ok ] * Applying sandbox-2.6-desktop.patch ... [ ok ] * Applying sandbox-2.6-open-nofollow.patch ... [ ok ] * Applying sandbox-2.6-check-empty-paths-at.patch ... [ ok ] >>> Source unpacked in /var/tmp/portage/sys-apps/sandbox-2.6-r1/work >>> Compiling source in /var/tmp/portage/sys-apps/sandbox-2.6-r1/work/sandbox-2.6 ... * Configuring sandbox for ABI=amd64... * econf: updating sandbox-2.6/config.sub with /usr/share/gnuconfig/config.sub * econf: updating sandbox-2.6/config.guess with /usr/share/gnuconfig/config.guess ../sandbox-2.6//configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking environment state... ok checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of x86_64-pc-linux-gnu-gcc... gcc3 checking whether x86_64-pc-linux-gnu-gcc and cc understand -c and -o together... yes checking for library containing strerror... none required checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar checking the archiver (x86_64-pc-linux-gnu-ar) interface... ar checking whether make sets $(MAKE)... (cached) yes checking for gawk... (cached) gawk checking for egrep... (cached) /bin/grep -E checking for readelf... readelf checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for fgrep... /bin/grep -F checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r checking for x86_64-pc-linux-gnu-objdump... x86_64-pc-linux-gnu-objdump checking how to recognize dependent libraries... pass_all checking for x86_64-pc-linux-gnu-dlltool... no checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for x86_64-pc-linux-gnu-ar... (cached) x86_64-pc-linux-gnu-ar checking for archiver @FILE support... @ checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib checking command to parse /usr/bin/nm -B output from x86_64-pc-linux-gnu-gcc object... ok checking for sysroot... no checking for x86_64-pc-linux-gnu-mt... no checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for multiple personalities... x86_64:-m64 x86:-m32 x32:-mx32 checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for ANSI C header files... (cached) yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for dirent.h... yes checking for dlfcn.h... (cached) yes checking for elf.h... yes checking for errno.h... yes checking for execinfo.h... yes checking for fcntl.h... yes checking for grp.h... yes checking for inttypes.h... (cached) yes checking for libgen.h... yes checking for limits.h... yes checking for memory.h... (cached) yes checking for pthread.h... yes checking for pwd.h... yes checking for siginfo.h... no checking for signal.h... yes checking for sigsegv.h... (cached) no checking for stdarg.h... yes checking for stdbool.h... yes checking for stddef.h... yes checking for stdint.h... (cached) yes checking for stdio.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking for syscall.h... yes checking for unistd.h... (cached) yes checking for utime.h... yes checking for sys/file.h... yes checking for sys/mman.h... yes checking for sys/param.h... yes checking for sys/ptrace.h... yes checking for sys/reg.h... yes checking for sys/stat.h... (cached) yes checking for sys/syscall.h... yes checking for sys/time.h... yes checking for sys/types.h... (cached) yes checking for sys/user.h... yes checking for sys/wait.h... (cached) yes checking for asm/ptrace.h... yes checking for linux/ptrace.h... yes checking for an ANSI C-conforming const... yes checking for uid_t in sys/types.h... yes checking for mode_t... yes checking for size_t... (cached) yes checking whether environ is declared... yes checking for ptrdiff_t... yes checking for sighandler_t... yes checking for sig_t... yes checking for __sighandler_t... yes checking for struct user_regs_struct... no checking for struct pt_regs... no checking size of struct user_regs_struct... 0 checking size of struct pt_regs... 0 checking for unistd.h... (cached) yes checking for working chown... yes checking for pid_t... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking whether lstat correctly handles trailing slash... yes checking whether lstat accepts an empty string... no checking whether lstat correctly handles trailing slash... (cached) yes checking return type of signal handlers... void checking whether stat accepts an empty string... no checking for backtrace... yes checking for creat64... yes checking for faccessat... yes checking for fchmodat... yes checking for fchownat... yes checking for fopen64... yes checking for ftruncate... yes checking for futimesat... yes checking for getcwd... yes checking for lchown... yes checking for linkat... yes checking for lutimes... yes checking for memmove... yes checking for memcpy... yes checking for memset... yes checking for mkdir... yes checking for mkdirat... yes checking for mkdtemp... yes checking for mkfifoat... yes checking for mknodat... yes checking for mkostemp... yes checking for mkostemp64... yes checking for mkostemps... yes checking for mkostemps64... yes checking for mkstemp... yes checking for mkstemp64... yes checking for mkstemps... yes checking for mkstemps64... yes checking for open64... yes checking for openat... yes checking for openat64... yes checking for pathconf... yes checking for ptrace... yes checking for realpath... yes checking for remove... yes checking for renameat... yes checking for rmdir... yes checking for setenv... yes checking for strcasecmp... yes checking for strchr... yes checking for strdup... yes checking for strerror... yes checking for strndup... yes checking for strrchr... yes checking for strspn... yes checking for strstr... yes checking for strtok_r... yes checking for symlinkat... yes checking for truncate64... yes checking for unlinkat... yes checking for utime... yes checking for utimensat... yes checking for utimes... yes checking for stackoverflow_install_handler in -lsigsegv... (cached) false checking for __sync_lock_test_and_set... yes checking for va_copy... va_copy checking for library containing dlopen... -ldl checking for dlvsym... yes checking truncate argument type... off_t checking for RTLD_NEXT... yes checking libc path... /lib64/libc.so.6 checking libc version... libc.so.6 checking for /proc/self/fd... yes checking for /dev/fd... yes checking for /proc/self/cmdline... yes checking for /proc/1/cmdline... yes checking for /proc/2290/cmdline... yes checking how to enable exception handling... -fexceptions checking CFLAGS for maximum warnings... -Wall checking whether C compiler accepts -Winvalid-pch... yes checking whether C compiler accepts -fdata-sections... yes checking whether C compiler accepts -ffunction-sections... yes checking whether the linker accepts -Wl,--as-needed... yes checking whether the linker accepts -Wl,--gc-sections... yes checking whether the linker accepts -Wl,--no-undefined... yes checking whether the linker accepts -Wl,--version-script,conftest.map... yes configure: creating ./config.status config.status: creating src/sandbox.sh config.status: creating Makefile config.status: creating data/Makefile config.status: creating etc/Makefile config.status: creating etc/sandbox.d/00default config.status: creating etc/sandbox.d/Makefile config.status: creating libsandbox/Makefile config.status: creating libsbutil/Makefile config.status: creating scripts/Makefile config.status: creating src/Makefile config.status: creating tests/atlocal config.status: creating tests/Makefile config.status: creating tests/package.m4 config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands config.status: executing tests/atconfig commands * Running sb_compile for ABI=amd64... make -j8 GEN headers.h.gch GEN libsandbox/headers.h.gch GEN libsbutil/headers.h.gch In file included from ../sandbox-2.6/headers.h:137:0: /usr/include/linux/ptrace.h:58:8: error: redefinition of ‘struct ptrace_peeksiginfo_args’ struct ptrace_peeksiginfo_args { ^ In file included from ../sandbox-2.6/headers.h:105:0: /usr/include/sys/ptrace.h:191:8: note: originally defined here struct ptrace_peeksiginfo_args ^ make: *** [headers.h.gch] Error 1 make: *** Waiting for unfinished jobs.... In file included from ../sandbox-2.6/headers.h:137:0: /usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args' struct ptrace_peeksiginfo_args { ^ In file included from ../sandbox-2.6/headers.h:105:0: /usr/include/sys/ptrace.h:191:8: note: originally defined here struct ptrace_peeksiginfo_args ^ In file included from ../sandbox-2.6/headers.h:137:0: /usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args' struct ptrace_peeksiginfo_args { ^ In file included from ../sandbox-2.6/headers.h:105:0: /usr/include/sys/ptrace.h:191:8: note: originally defined here struct ptrace_peeksiginfo_args ^ make: *** [libsandbox/headers.h.gch] Error 1 make: *** [libsbutil/headers.h.gch] Error 1 emake failed * ERROR: sys-apps/sandbox-2.6-r1::gentoo failed (compile phase): * (no error message) * * Call stack: * ebuild.sh, line 93: Called src_compile * environment, line 2686: Called sb_foreach_abi 'sb_compile' * environment, line 2638: Called sb_compile * environment, line 2621: Called die * The specific snippet of code: * emake || die * * If you need support, post the output of `emerge --info '=sys-apps/sandbox-2.6-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=sys-apps/sandbox-2.6-r1::gentoo'`. * If configure failed with a 'cannot run C compiled programs' error, try this: * FEATURES=-sandbox emerge sandbox * The complete build log is located at '/var/tmp/portage/sys-apps/sandbox-2.6-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-apps/sandbox-2.6-r1/temp/environment'. * Working directory: '/var/tmp/portage/sys-apps/sandbox-2.6-r1/work/build-amd64' * S: '/var/tmp/portage/sys-apps/sandbox-2.6-r1/work/sandbox-2.6'
it's problem due to conflicts of sys-kernel/linux-headers-3.10 and glibc-2.18 both define "struct ptrace_peeksiginfo_args " sys-kernel/linux-headers (/usr/include/linux/ptrace.h) line 59 sys-libs/glibc (/usr/include/sys/ptrace.h) line 191
Removed line 137 in headers.h: # include <linux/ptrace.h> Then it compiles with Glibc 2.18. Glibc 2.18 has moved "struct ptrace_peeksiginfo_args" to its own headers. Guess sandbox and other apps needs a preprocessor #ifdef for checking if glibc version is 2.18 or higher before including <linux/ptrace.h>
*** Bug 485210 has been marked as a duplicate of this bug. ***
Created attachment 359854 [details, diff] Fix sandbox configuration, when both glibc (sys) and linux ptrace is installed. Skip check for 'linux' ptrace if 'sys' ptrace is found. I have no idea if glibc or linux ptrace header should be prefered, what is your opinion?
Created attachment 363454 [details, diff] glibc-2.18.patch Maybe something like this.
*** Bug 487456 has been marked as a duplicate of this bug. ***
will fix in glibc itself
should be fixed by: http://sources.gentoo.org/gentoo/src/patchsets/glibc/2.18/00_all_0017-ptrace.h-add-__-prefix-to-ptrace_peeksiginfo_args.patch?rev=1.1