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

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



Your message dated Sun, 14 Sep 2014 19:37:23 +0200
with message-id <20140914173723.GG802@hall.aurel32.net>
and subject line Re: Bug#761468: libc6-dev: On new jessie install, FTBFS for libantlr3c-3.2 due to misplaced sys/cdefs.h
has caused the Debian Bug report #761468,
regarding libc6-dev: On new jessie install, FTBFS for libantlr3c-3.2 due to misplaced sys/cdefs.h
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
761468: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=761468
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- 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 ---

Reply to: