angstrom-2008.1, uclibc, perl 5.8.8: error: #error It appears you have defined _FILE_OFFSET_BITS=64. #error


Paul Menzel
 

Dear OE folks,


I tried to build angstrom-2008.1 with the OE dev branch using uclibc.

DISTRO = "angstrom-2008.1"

GLIBC_GENERATE_LOCALES = "en_US.UTF-8 en_GB.UTF-8 de_DE.UTF-8"

MACHINE = "beagleboard"
BUILD_ARCH = "i686"
BUILD_OS = "linux"
ANGSTROMLIBC = "uclibc"

Building perl 5.8.8 I get the following error.

make[1]: Entering directory `/oe/angstrom-dev/work/armv7a-angstrom-linux-uclibceabi/perl-5.8.8-r34/perl-5.8.8'
`sh cflags "optimize='-O2'" miniperlmain.o` -fPIC miniperlmain.c
CCCMD = arm-angstrom-linux-uclibceabi-gcc -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -DPERL_CORE -c -isystem/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb3 -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -Wall
In file included from /oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/sys/types.h:27,
from perl.h:420,
from miniperlmain.c:36:
/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/features.h:416:4: error: #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled.
In file included from /oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/stdio.h:72,
from perlio.h:65,
from iperlsys.h:51,
from perl.h:2733,
from miniperlmain.c:36:
/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/bits/uClibc_stdio.h:61:2: error: #error Sorry... uClibc was built without large file support!
In file included from perlio.h:65,
from iperlsys.h:51,
from perl.h:2733,
from miniperlmain.c:36:
/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/stdio.h:83: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fpos_t'
In file included from perlio.h:65,
from iperlsys.h:51,
from perl.h:2733,
from miniperlmain.c:36:
/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/stdio.h:714: error: expected declaration specifiers or '...' before 'fpos_t'
/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/stdio.h:716: error: expected ';', ',' or ')' before '*' token
In file included from perl.h:3950,
from miniperlmain.c:36:
proto.h:297: error: expected declaration specifiers or '...' before 'off64_t'
proto.h:299: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Perl_do_sysseek'
proto.h:300: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Perl_do_tell'
proto.h:2004: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Perl_PerlIO_tell'
proto.h:2005: error: expected declaration specifiers or '...' before 'off64_t'

Full compile log is attached. Searching the Web did not turn anything up
and currently it logs like git.openembedded.org is down.

I appreciate any hints.


Thanks,

Paul


Henning Heinold <heinold@...>
 

Hi,

Khem and blindvt introduced a new DISTRO feature largefile which now enables stat64 ander serval other largefile
options. Unfornatly for now only minimal-uclibc-distro is using it. A quick workaround is to add largefile
in the angstroem.inc file.


Bye Henning


Bernhard Reutner-Fischer
 

On Tue, Jul 13, 2010 at 03:29:24PM +0200, Paul Menzel wrote:
Dear OE folks,


I tried to build angstrom-2008.1 with the OE dev branch using uclibc.

DISTRO = "angstrom-2008.1"

GLIBC_GENERATE_LOCALES = "en_US.UTF-8 en_GB.UTF-8 de_DE.UTF-8"

MACHINE = "beagleboard"
BUILD_ARCH = "i686"
BUILD_OS = "linux"
ANGSTROMLIBC = "uclibc"

Building perl 5.8.8 I get the following error.

make[1]: Entering directory `/oe/angstrom-dev/work/armv7a-angstrom-linux-uclibceabi/perl-5.8.8-r34/perl-5.8.8'
`sh cflags "optimize='-O2'" miniperlmain.o` -fPIC miniperlmain.c
CCCMD = arm-angstrom-linux-uclibceabi-gcc -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -DPERL_CORE -c -isystem/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb3 -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -Wall
In file included from /oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/sys/types.h:27,
from perl.h:420,
from miniperlmain.c:36:
/oe/angstrom-dev/sysroots/armv7a-angstrom-linux-uclibceabi/usr/include/features.h:416:4: error: #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled.
from http://repo.or.cz/w/buildroot.git/tree/HEAD:/package/perl
perl-5.8.8-020-largefile.patch
but you might need fixing up the config.sh nevertheless:
http://repo.or.cz/w/buildroot.git/blob/HEAD:/package/perl/perl.mk#l124

Just an idea,


Paul Menzel
 

Dear Henning,


Am Dienstag, den 13.07.2010, 17:44 +0200 schrieb Henning Heinold:

Khem and blindvt introduced a new DISTRO feature largefile which now enables stat64 ander serval other largefile
options. Unfornatly for now only minimal-uclibc-distro is using it. A quick workaround is to add largefile
in the angstroem.inc file.
thank you for your reply.

Koen committed your proposed workaround in
b62ea92436361e3f89eb433389a2fd48f967e4f0 [1].


Thanks,

Paul


[1] http://cgit.openembedded.org/cgit.cgi?url=openembedded/commit/&id=b62ea92436361e3f89eb433389a2fd48f967e4f0