OK, so now all of REG_EAX, REG_EBX and so on are defined on Linux, or rather, in the newest eglibc. Do you prefer renaming the enum items or #undef-ing all of them?
---------- Forwarded message ----------
Subject: Bug#708366: pike7.8: FTBFS due to conflicting REG_* definitions Date: onsdagen den 15 maj 2013 From: Colin Watson cjwatson@ubuntu.com To: submit@bugs.debian.org
Package: pike7.8 Version: 7.8.700-2 Severity: serious User: ubuntu-devel@lists.ubuntu.com Usertags: origin-ubuntu saucy
pike7.8 fails to build in unstable as follows:
Compiling pikecode.c In file included from /«PKGBUILDDIR»/src/pikecode.c:25:0: /«PKGBUILDDIR»/src/code/ia32.c:22:16: error: redeclaration of enumerator 'REG_EAX' In file included from /usr/include/signal.h:360:0, from /usr/include/i386-linux-gnu/sys/param.h:28, from /«PKGBUILDDIR»/src/pike_macros.h:14, from /«PKGBUILDDIR»/src/program.h:12, from /«PKGBUILDDIR»/src/pikecode.c:15: /usr/include/i386-linux-gnu/sys/ucontext.h:180:3: note: previous definition of 'REG_EAX' was here In file included from /«PKGBUILDDIR»/src/pikecode.c:25:0: /«PKGBUILDDIR»/src/code/ia32.c:22:29: error: redeclaration of enumerator 'REG_EBX' In file included from /usr/include/signal.h:360:0, from /usr/include/i386-linux-gnu/sys/param.h:28, from /«PKGBUILDDIR»/src/pike_macros.h:14, from /«PKGBUILDDIR»/src/program.h:12, from /«PKGBUILDDIR»/src/pikecode.c:15: /usr/include/i386-linux-gnu/sys/ucontext.h:174:3: note: previous definition of 'REG_EBX' was here
*snip*
It looks painful to reliably avoid the enumeration values in <sys/ucontext.h>. I suggest simply renaming Pike's enumeration values.
Thanks,
On söndagen den 19 maj 2013, Magnus Holmgren wrote:
OK, so now all of REG_EAX, REG_EBX and so on are defined on Linux, or rather, in the newest eglibc. Do you prefer renaming the enum items or #undef-ing all of them?
I didn't pay attention to the error messages. The conflict is with another enum, so renaming the constants is basically the only option. What do say about the attached patch?
pike-devel@lists.lysator.liu.se