[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#761468: libc6-dev: On new jessie install, FTBFS for libantlr3c-3.2 due to misplaced sys/cdefs.h



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

Reply to: