This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Error Building Newlib for arm-none-eabi


On 2018-02-20 17:33, R0b0t1 wrote:
> On Mon, Feb 19, 2018 at 10:44 PM, R0b0t1 <r030t1@gmail.com> wrote:
>> On Mon, Feb 19, 2018 at 8:33 PM, R0b0t1 <r030t1@gmail.com> wrote:
>>> I am trying to build for arm-none-eabi with GCC.
>>>
>>>     ../../source/${dname}/configure \
>>>         --target=${TARGET} \
>>>         --prefix=`realpath ../../${DIR_PREFIX}` \
>>>         --disable-newlib-supplied-syscalls \
>>>         --enable-newlib-reent-small \
>>>         --disable-newlib-fvwrite-in-streamio \
>>>         --disable-newlib-fseek-optimization \
>>>         --disable-newlib-wide-orient \
>>>         --disable-newlib-unbuf-stream-opt \
>>>         --enable-newlib-global-atexit \
>>>         --enable-newlib-retargetable-locking \
>>>         --disable-nls
>>>
>>>     make -j"${NCPU}" -l"${NCPU}"
>>>     make install
>>>
>>>
>>> Gives:
>>>
>>> In file included from
>>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/ssp/stdio.h:34:0,
>>>                  from
>>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800,
>>>                  from
>>> ../../../../../../source/newlib-3.0.0/newlib/libc/stdio/gets.c:62:
>>> ../../../../../../source/newlib-3.0.0/newlib/libc/stdio/gets.c:96:1:
>>> error: expected declaration specifiers or ‘...’ before
>>> ‘__builtin_object_size’
>>>  gets (char *buf)
>>>  ^
>>>
>>> I attempted to search for the error, but did not get much of anywhere.
>>> The GCC mailing list informed me that building all components
>>> separately may not be the best idea, but I am looking to copy existing
>>> build systems and to integrate the code into those build systems. In
>>> which case separate component builds are more convenient, at least for
>>> now.
>>>
>>
>> Some testing with a default configuration, just setting --target,
>> leads to more of the same:
>>
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800:0,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/sprintf.c:572:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/sprintf.c:606:1:
>> error: expected declaration specifiers or ‘...’ before numeric
>> constant
>>  sprintf (char *__restrict str,
>>  ^
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/ssp/stdio.h:34:0,
>>                  from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/sprintf.c:572:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/sprintf.c:606:1:
>> error: expected declaration specifiers or ‘...’ before
>> ‘__builtin_object_size’
>>  sprintf (char *__restrict str,
>>  ^
>> make[8]: *** [Makefile:1222: lib_a-sprintf.o] Error 1
>> make[8]: *** Waiting for unfinished jobs....
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/ssp/stdio.h:34:0,
>>                  from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/gets.c:62:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/gets.c:96:1:
>> error: expected declaration specifiers or ‘...’ before
>> ‘__builtin_object_size’
>>  gets (char *buf)
>>  ^
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800:0,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/snprintf.c:22:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/snprintf.c:66:1:
>> error: expected declaration specifiers or ‘...’ before numeric
>> constant
>>  snprintf (char *__restrict str,
>>  ^
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/ssp/stdio.h:34:0,
>>                  from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/snprintf.c:22:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/snprintf.c:66:1:
>> error: expected declaration specifiers or ‘...’ before
>> ‘__builtin_object_size’
>>  snprintf (char *__restrict str,
>>  ^
>> make[8]: *** [Makefile:1096: lib_a-gets.o] Error 1
>> make[8]: *** [Makefile:1216: lib_a-snprintf.o] Error 1
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800:0,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsprintf.c:25:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsprintf.c:34:1:
>> error: expected declaration specifiers or ‘...’ before numeric
>> constant
>>  vsprintf (char *__restrict str,
>>  ^
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/ssp/stdio.h:34:0,
>>                  from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsprintf.c:25:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsprintf.c:34:1:
>> error: expected declaration specifiers or ‘...’ before
>> ‘__builtin_object_size’
>>  vsprintf (char *__restrict str,
>>  ^
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800:0,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsnprintf.c:25:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsnprintf.c:35:1:
>> error: expected declaration specifiers or ‘...’ before numeric
>> constant
>>  vsnprintf (char *__restrict str,
>>  ^
>> In file included from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/ssp/stdio.h:34:0,
>>                  from
>> /home/R0b0t1/devel/toolgen/source/newlib-3.0.0/newlib/libc/include/stdio.h:800,
>>                  from
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsnprintf.c:25:
>> ../../../../../../../source/newlib-3.0.0/newlib/libc/stdio/vsnprintf.c:35:1:
>> error: expected declaration specifiers or ‘...’ before
>> ‘__builtin_object_size’
>>  vsnprintf (char *__restrict str,
>>  ^

> I apologize for the updates, but I've just repeated that build with
> different results. Only the error in gets.c is reported.
> 
> ../../source/newlib-3.0.0/configure --target=arm-none-eabi
> --host=x86_64-pc-linux-gnu --prefix=`realpath ../../prefix`
> --docdir=`realpath ../../prefix/share/doc`
> 
> I had a similar issue with GCC that was solved with the addition of a
> configuration flag, but here I am at a loss.

Autoconf 14.1 Specifying target triplets says:

https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html

--target defaults to --host, --host defaults to --build, so you need to specify
--build and --host, as --host specifies a cross build, so you probably need to
use --build=x86_64-pc-linux-gnu --host=arm-none-eabi

Autoconf 18.6.3 Hosts and Cross Compilation explains:

https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Hosts-and-Cross_002dCompilation.html

HTH

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]