Summary: | sys-process/audit fails to build on ia64 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Raúl Porcel (RETIRED) <armin76> |
Component: | New packages | Assignee: | Robin Johnson <robbat2> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ia64 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
http://sourceware.org/bugzilla/show_bug.cgi?id=762 https://bugs.gentoo.org/show_bug.cgi?id=480218 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 418395 | ||
Attachments: |
build.log
audit-2.1.3-ia64-compile-fix.patch |
Description
Raúl Porcel (RETIRED)
2012-10-21 18:06:10 UTC
Relevant part: /usr/include/asm/fpu.h:57:8: error: redefinition of 'struct ia64_fpreg' /usr/include/bits/sigcontext.h:32:8: note: originally defined here Here they talk about it: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=538916 FYI stable version also fails, so i believe its a toolchain issue... (In reply to comment #1) this is "to be expected" when it comes to ia64 and trying to include kernel ptrace headers. either don't include the kernel ptrace headers (stick to the C library ones), or employ this hack: #ifdef __ia64__ /* what a pos */ # define ia64_fpreg FU_ia64_fpreg # define pt_all_user_regs FU_pt_all_user_regs #endif #ifdef HAVE_ASM_PTRACE_H # include <asm/ptrace.h> #endif #ifdef HAVE_LINUX_PTRACE_H # include <linux/ptrace.h> #endif #undef FU_ia64_fpreg #undef FU_pt_all_user_regs Created attachment 332688 [details, diff]
audit-2.1.3-ia64-compile-fix.patch
vapier:
your fix doesn't work. I attached it here for good measure.
I also tried including it right after #include "config.h" in each of the affected files.
Here's the full trace of the conflicting definitions.
audit-2.2.2/src/auditd-dispatch.c:#include <signal.h>
audit-2.2.2/src/auditd-dispatch.c:#include "libaudit.h"
audit-2.2.2/src/auditd-event.c:#include <signal.h>
audit-2.2.2/src/auditd-event.c:#include "libaudit.h"
audit-2.2.2/src/auditd-reconfig.c:#include <signal.h>
audit-2.2.2/src/auditd-reconfig.c:#include "libaudit.h"
audit-2.2.2/src/auditd-sendmail.c:#include <signal.h>
audit-2.2.2/src/auditd-sendmail.c:#include "libaudit.h"
audit-2.2.2/src/auditd.c:#include <signal.h>
audit-2.2.2/src/auditd.c:#include "libaudit.h"
audit-2.2.2/src/ausearch.c:#include <signal.h>
audit-2.2.2/src/ausearch.c:#include "libaudit.h"
audit-2.2.2/lib/libaudit.h:#include <linux/audit.h>
/usr/include/linux/audit.h: #include <linux/ptrace.h>
/usr/include/linux/ptrace.h:#include <asm/ptrace.h>
/usr/include/asm/ptrace.h:#include <asm/fpu.h>
/usr/include/asm/fpu.h:struct ia64_fpreg {
/usr/include/signal.h:# include <bits/sigcontext.h>
/usr/include/bits/sigcontext.h:struct ia64_fpreg
Another fix I tried that failed: #ifdef __ia64__ # include <linux/types.h> # define __ASSEMBLY__ # include <asm/fpu.h> # undef __ASSEMBLY__ #endif Moved to upstream glibc bugzilla: http://sourceware.org/bugzilla/show_bug.cgi?id=762 Fixed in 2.1.3-r1 now with a absolutely ridiculous patch to avoid asm/fpu.h and take the other definition instead. (In reply to comment #6) i'm technically the ia64/glibc maintainer upstream now ;) |