--- Begin Message ---
Package: libc6-dev
Version: 2.19-10
Severity: important
Dear Maintainer,
* What led up to the situation?
On a new jessie install (amd64 installed 11 Sept 2014), I used
apt-get source libantlr3c, cd to antlr3c-3.2, ./configure, and make.
* What was the outcome of this action?
xxxxxx@debian:~/antlr/libantlr3c-3.2$ make
make all-am
make[1]: Entering directory '/home/xxxxxx/antlr/libantlr3c-3.2'
if /bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.
-Iinclude -m32 -O2 -Wall -MT antlr3baserecognizer.lo -MD -MP -MF
".deps/antlr3baserecognizer.Tpo" -c -o antlr3baserecognizer.lo `test -f
'src/antlr3baserecognizer.c' || echo './'`src/antlr3baserecognizer.c; \
then mv -f ".deps/antlr3baserecognizer.Tpo" ".deps/antlr3baserecognizer.Plo";
else rm -f ".deps/antlr3baserecognizer.Tpo"; exit 1; fi
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -Iinclude -m32 -O2 -Wall -MT
antlr3baserecognizer.lo -MD -MP -MF .deps/antlr3baserecognizer.Tpo -c
src/antlr3baserecognizer.c -fPIC -DPIC -o .libs/antlr3baserecognizer.o
In file included from /usr/include/stdio.h:27:0,
from include/antlr3defs.h:219,
from include/antlr3baserecognizer.h:39,
from src/antlr3baserecognizer.c:9:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or
directory
# include <sys/cdefs.h>
^
compilation terminated.
Makefile:424: recipe for target 'antlr3baserecognizer.lo' failed
make[1]: *** [antlr3baserecognizer.lo] Error 1
make[1]: Leaving directory '/home/xxxxxx/antlr/libantlr3c-3.2'
Makefile:286: recipe for target 'all' failed
make: *** [all] Error 2
* What outcome did you expect instead?
Build from source
Upon investigation, I saw that /usr/include/features.h references
sys/cdefs.h, and there is no sys folder in /usr/include. Instead cdefs.h is
found in x86_64-linux-gnu/sys. This would be a problem for all these other
/usr/include files as well:
xxxxxx@debian:/usr/include$ grep sys/ * 2> /dev/null
aio.h:#include <sys/types.h>
aliases.h:#include <sys/types.h>
ar.h:#include <sys/cdefs.h>
features.h:# include <sys/cdefs.h>
fts.h:#include <sys/types.h>
ftw.h:#include <sys/types.h>
ftw.h:#include <sys/stat.h>
glob.h:#include <sys/cdefs.h>
ifaddrs.h:#include <sys/socket.h>
libio.h:# include <sys/cdefs.h>
link.h:#include <sys/types.h>
mqueue.h:#include <sys/types.h>
pngconf.h:# include <sys/types.h>
poll.h:#include <sys/poll.h>
pty.h:#include <sys/ioctl.h>
regex.h:#include <sys/types.h>
resolv.h:#include <sys/types.h>
resolv.h:# include <sys/param.h>
resolv.h:# include <sys/cdefs.h>
semaphore.h:#include <sys/types.h>
sgtty.h:#include <sys/ioctl.h>
signal.h:# include <sys/ucontext.h>
spawn.h:#include <sys/types.h>
stdlib.h:# include <sys/types.h> /* we need int32_t... */
syscall.h:#include <sys/syscall.h>
syslog.h:#include <sys/syslog.h>
termcap.h:#include <sys/types.h>
term.h:#include <sys/ioctl.h>
termio.h:#include <sys/ioctl.h>
termios.h:# include <sys/ttydefaults.h>
thread_db.h:#include <sys/types.h>
thread_db.h:#include <sys/procfs.h>
ucontext.h:#include <sys/ucontext.h>
ustat.h:#include <sys/ustat.h>
utmp.h:#include <sys/types.h>
utmpx.h:#include <sys/time.h>
wait.h:#include <sys/wait.h>
I'm no C expert, so maybe I'm missing something obvious. But it sounds a bit
like bug #685519, and maybe #637232. Is it possible it's something that would
affect a new install more severely, as the old headers might not be removed
during an upgrade?
I tried
root@debian:/usr/include# ln -s x86_64-linux-gnu/sys sys
... but that led to the next error
In file included from /usr/include/features.h:374:0,
from /usr/include/stdio.h:27,
from include/antlr3defs.h:219,
from include/antlr3baserecognizer.h:39,
from src/antlr3baserecognizer.c:9:
/usr/include/sys/cdefs.h:385:27: fatal error: bits/wordsize.h: No such file or
directory
#include <bits/wordsize.h>
^
compilation terminated. Likewise I did
root@debian:/usr/include# ln -s x86_64-linux-gnu/bits bits
Next was
In file included from /usr/include/stdio.h:27:0,
from include/antlr3defs.h:219,
from include/antlr3baserecognizer.h:39,
from src/antlr3baserecognizer.c:9:
/usr/include/features.h:398:23: fatal error: gnu/stubs.h: No such file or
directory
#include <gnu/stubs.h>
root@debian:/usr/include# ln -s x86_64-linux-gnu/gnu gnu
This is obviously not the right approach. It's now looking for stubs-32.h which
doesn't exist:
In file included from /usr/include/features.h:398:0,
from /usr/include/stdio.h:27,
from include/antlr3defs.h:219,
from include/antlr3baserecognizer.h:39,
from src/antlr3baserecognizer.c:9:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or
directory
# include <gnu/stubs-32.h>
xxxxxx@debian:~/antlr/libantlr3c-3.2$ ls /usr/include/x86_64-linux-gnu/gnu
libc-version.h lib-names.h stubs-64.h stubs.h
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 3.14-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_NZ.utf8, LC_CTYPE=en_NZ.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libc6-dev depends on:
ii libc-dev-bin 2.19-10
ii libc6 2.19-10
ii linux-libc-dev 3.16.2-2
libc6-dev recommends no packages.
Versions of packages libc6-dev suggests:
pn glibc-doc <none>
ii manpages-dev 3.71-1
-- no debconf information
--- End Message ---
--- Begin Message ---
On Sun, Sep 14, 2014 at 04:40:54PM +1200, Chris Tillman wrote:
> Package: libc6-dev
> Version: 2.19-10
> Severity: important
>
> Dear Maintainer,
>
> * What led up to the situation?
> On a new jessie install (amd64 installed 11 Sept 2014), I used
> apt-get source libantlr3c, cd to antlr3c-3.2, ./configure, and make.
>
> * What was the outcome of this action?
> xxxxxx@debian:~/antlr/libantlr3c-3.2$ make
> make all-am
> make[1]: Entering directory '/home/xxxxxx/antlr/libantlr3c-3.2'
> if /bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.
> -I.
> -Iinclude -m32 -O2 -Wall -MT antlr3baserecognizer.lo -MD -MP -MF
> ".deps/antlr3baserecognizer.Tpo" -c -o antlr3baserecognizer.lo `test -f
> 'src/antlr3baserecognizer.c' || echo './'`src/antlr3baserecognizer.c; \
> then mv -f ".deps/antlr3baserecognizer.Tpo"
> ".deps/antlr3baserecognizer.Plo";
> else rm -f ".deps/antlr3baserecognizer.Tpo"; exit 1; fi
> mkdir .libs
> gcc -DHAVE_CONFIG_H -I. -I. -I. -Iinclude -m32 -O2 -Wall -MT
> antlr3baserecognizer.lo -MD -MP -MF .deps/antlr3baserecognizer.Tpo -c
> src/antlr3baserecognizer.c -fPIC -DPIC -o .libs/antlr3baserecognizer.o
> In file included from /usr/include/stdio.h:27:0,
> from include/antlr3defs.h:219,
> from include/antlr3baserecognizer.h:39,
> from src/antlr3baserecognizer.c:9:
> /usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or
> directory
> # include <sys/cdefs.h>
> ^
> compilation terminated.
> Makefile:424: recipe for target 'antlr3baserecognizer.lo' failed
> make[1]: *** [antlr3baserecognizer.lo] Error 1
> make[1]: Leaving directory '/home/xxxxxx/antlr/libantlr3c-3.2'
> Makefile:286: recipe for target 'all' failed
> make: *** [all] Error 2
>
The problem there is that you try to build 32-bit binaries (using -m32),
but you don't have 32-bit libraries installed. You should install the
"gcc-multilib" package.
Closing the bug as invalid.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://www.aurel32.net
--- End Message ---