[Top][All Lists]

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

Re: Failure to compile latest coreutils-6.12

From: Bob Proulx
Subject: Re: Failure to compile latest coreutils-6.12
Date: Sat, 6 Dec 2008 16:24:00 -0700
User-agent: Mutt/1.5.13 (2006-08-11)

EA Games wrote:
> I am using kernel (gcc 4.3.2, ld*). I've tried
> compiling the latest coreutils
> that I downloaded from the official website and I keep getting the same
> error message.

Thanks for the report.  By the way...  The kernel version is possibly
less important than the libc version.  And also the architecture.

> mv unistd.h-t unistd.h
> make  all-am
> make[3]: Entering directory `/mnt/lfs/tmp/coreutils-6.12/lib'
> depbase=`echo set-mode-acl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>         gcc -std=gnu99  -I.      -g -O2 -MT set-mode-acl.o -MD -MP -MF
> $depbase.Tpo -c -o set-mode-acl.o set-mode-acl.c &&\
>         mv -f $depbase.Tpo $depbase.Po
> In file included from acl.h:20,
>                  from set-mode-acl.c:22:
> /usr/include/sys/types.h:52: error: two or more data types in declaration
> specifiers

On my system that line is a simple typedef.  On your system it appears
to be something else.  Can you show us that line and some context for it?

Because this is an interaction with system headers you will probably
need to do some debugging.  Obviously this is working for the
developers on systems that they have access to and so isn't easy for
them to debug.

> In file included from gettext.h:169,
>                  from acl-internal.h:49,
>                  from set-mode-acl.c:24:
> ./string.h:214: error: expected identifier or '(' before '__extension__'

The way I debug those types of problems is to preprocess the file and
to see what the macro processor expanded everything to before passing
it to the compile phase.  Take that compile line that failed and get
so that you can recreate it from the command line.

  > gcc -std=gnu99  -I.      -g -O2 -MT set-mode-acl.o -MD -MP -MF
  > $depbase.Tpo -c -o set-mode-acl.o set-mode-acl.c

Then simplify it.  Probably something like this:

  gcc -std=gnu99 -I. -g -E -o set-mode-acl.i -c set-mode-acl.c

That will produce a file set-mode-acl.i which has all macros
expanded.  But it also has line number directives.  I typically delete
those in an editor.  Something like this should work but everyone will
have a favorite way to do these types of things.

  sed --in-place '/^# [[:digit:]]/d' set-mode-acl.i

Then compile that file again.

  gcc -std=gnu99 -I. -g -o set-mode-acl.o -c set-mode-acl.i

Of course that worked for me on my system.  But you should see the
same error you saw a moment ago.  But now everything has been expanded
in the file.  What does that show?

> Also during configure process I've noticed this message.
> configure: WARNING: sys/sysmacros.h: present but cannot be compiled
> configure: WARNING: sys/sysmacros.h:     check for missing prerequisite
> headers?
> configure: WARNING: sys/sysmacros.h: see the Autoconf documentation
> configure: WARNING: sys/sysmacros.h:     section "Present But Cannot Be
> Compiled"
> configure: WARNING: sys/sysmacros.h: proceeding with the preprocessor's
> result
> configure: WARNING: sys/sysmacros.h: in the future, the compiler will take
> precedence
> configure: WARNING:     ## ------------------------------------ ##
> configure: WARNING:     ## Report this to address@hidden ##
> configure: WARNING:     ## ------------------------------------ ##
> Looks like there is a confusion with the data types <sys/types.h> file which
> is followed by the parse error

To me on first look it would appear to be a mismatch between gcc and
the headers on your system.  What architecture are you using?  How were
the gcc and library headers installed?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]