Bug 83 - liblockfile fails to compile due to eaccess redefinition
Summary: liblockfile fails to compile due to eaccess redefinition
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: PC Linux
: P5 minor
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-02 20:00 UTC by Hunter Cobbs
Modified: 2009-07-07 21:26 UTC (History)
2 users (show)

See Also:
Host: pc-linux
Target: arm-linux-gnueabi (gcc 4.2.2)
Build: 2009.02-rc3


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hunter Cobbs 2009-02-02 20:00:53 UTC
When compiling buildroot liblockfile fails compiling dotlockfile.c due to redefinition of eaccess in 4.2 gcc compilers.

-------------------  compiler snip -----------------
/opt/eldk/usr/bin/arm-linux-gcc -Os  -I/home/hcobbs/dev/src/buildroot-2009.02-rc3/ucm_build_arm/staging_dir/include -I/home/hcobbs/dev/src/buildroot-2009.02-rc3/ucm_build_arm/staging_dir/usr/include -I/opt/eldk/usr/arm-linux/include --sysroot /home/hcobbs/dev/src/buildroot-2009.02-rc3/ucm_build_arm/staging_dir/ -g -O2 -Wall -D_GNU_SOURCE -fPIC -D_REENTRANT -I.   -c -o dotlockfile.o dotlockfile.c
dotlockfile.c:45: error: conflicting types for 'eaccess'
/opt/eldk/usr/../arm/usr/include/unistd.h:268: error: previous declaration of 'eaccess' was here
make[1]: *** [dotlockfile.o] Error 1
make[1]: Leaving directory `/home/hcobbs/dev/src/buildroot-2009.02-rc3/ucm_build_arm/liblockfile-1.06.1'
make: *** [/home/hcobbs/dev/src/buildroot-2009.02-rc3/ucm_build_arm/staging_dir/lib/liblockfile.so.1.0] Error 2

-----------------  end compiler snip  -----------------

==================== compiler version ==================
Reading specs from /opt/eldk/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/specs
Target: arm-linux-gnueabi
Configured with: /opt/eldk/build/arm-2008-11-24/work/usr/src/denx/BUILD/crosstool-0.43/build/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueabi/gcc-4.2.2/configure --target=arm-linux-gnueabi --host=i686-host_pc-linux-gnu --prefix=/var/tmp/eldk.ywMqKk/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueabi --disable-hosted-libstdcxx --with-headers=/var/tmp/eldk.ywMqKk/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueabi/arm-linux-gnueabi/include --with-local-prefix=/var/tmp/eldk.ywMqKk/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueabi/arm-linux-gnueabi --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++,java --enable-shared --enable-c99 --enable-long-long --without-x
Thread model: posix
gcc version 4.2.2
================== end compiler version =================

Altering the liblockfile configure script the following way eliminates the problem after a make clean:

-- orig --
if test "$GCC" = "yes"; then
    CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE"
fi

-- patched --
if test "$GCC" = "yes"; then
    CFLAGS="$CFLAGS -Wall"
fi
Comment 1 Peter Korsgaard 2009-02-02 21:36:22 UTC
That seems to be a bug in your toolchain then, it builds with the standard toolchain in BR (4.3.2) for me.

What's the reason for using a crosstool toolchain instead?
Comment 2 Hunter Cobbs 2009-02-02 22:21:46 UTC
I use the current toolchain when compiling my kernel.  I was simply trying to maintain the same toolchain across all builds, but it looks like that may not be the best track to take.
Comment 3 Lionel Landwerlin 2009-07-06 23:26:29 UTC
(In reply to comment #2)
> I use the current toolchain when compiling my kernel.  I was simply trying to
> maintain the same toolchain across all builds, but it looks like that may not
> be the best track to take.
> 

It's a problem with new glibc which added the eaccess function in unistd.h under the _GNU_SOURCE flag.
It's been fixed in later verions of liblockfile : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392779.

I just compiled a buildroot with liblockfile version 1.08. Please update the version in buildroot.
Comment 4 Peter Korsgaard 2009-07-07 21:26:28 UTC
updated to v1.08 in git