[Buildroot] [PATCH 1/2] package/Makefile.in: Fix dependency for selecting uclinux as TARGET_OS

Axel Lin axel.lin at ingics.com
Fri Sep 6 07:14:34 UTC 2013


2013/9/6 Thomas Petazzoni <thomas.petazzoni at free-electrons.com>:
> Dear Axel Lin,
>
> On Fri, 6 Sep 2013 10:21:55 +0800, Axel Lin wrote:
>
>> > So it looks like the arm-<something>-uclinux* tuple should not be used,
>> > if I understand this correctly. Do you have more details about why
>> > arm-<something>-uclinux* should be used?
>>
>> Somehow, I thought noMMU ARM platforms that using FLAT binary format needs to
>> select uclinux as TARGET_OS.
>> But since you mentioned the release notes of gcc 4.7, I'm not 100% sure.
>
> I am not sure either.
>
>> I check my build, the result is I have arm-buildroot-uclinux-uclibcgnueabi-gcc.
>> And the build log shows it checks target system type as:
>> checking target system type... arm-buildroot-uclinux-uclibcgnueabi
>>
>> Does buildroot automatically convert arm*-*-uclinux* to arm*-*-uclinux*eabi?
>>
>> I also check host-gcc-final-4.5.4/gcc/config.gcc and libgcc/config.host.
>> Looks like it also expects arm*-*-uclinux* for ARM ucLinux and arm*-*-linux* for
>> ARM GNU/Linux with ELF.
>
> Can you check in more recent gcc versions such as 4.7 or 4.8 ? Looking
> at the most recent versions is important to see what is the current
> tuple accepted for this situation.

Hi Thomas,
In host-gcc-final-4.8.1/gcc/config.gcc:

# Unsupported targets list.  Do not put an entry in this list unless
# it would otherwise be caught by a more permissive pattern.  The list
# should be in alphabetical order.
case ${target} in
 # Avoid special cases that are not obsolete
   arm*-*-*eabi*                        \
 )
        ;;
   arm*-wince-pe*                       \
 | arm*-*-ecos-elf                      \
 | arm*-*-elf                           \
 | arm*-*-freebsd*                      \
 | arm*-*-linux*                        \
 | arm*-*-uclinux*                      \
 | i[34567]86-go32-*                    \
 | i[34567]86-*-go32*                   \
 | m68k-*-uclinuxoldabi*                \
 | mips64orion*-*-rtems*                \
 | pdp11-*-bsd                          \
 | sparc-hal-solaris2*                  \
 | thumb-*-*                            \
 | *-*-freebsd[12] | *-*-freebsd[12].*  \
 | *-*-freebsd*aout*                    \
 | *-*-linux*aout*                      \
 | *-*-linux*coff*                      \
 | *-*-linux*libc1*                     \
 | *-*-linux*oldld*                     \
 | *-*-rtemsaout*                       \
 | *-*-rtemscoff*                       \
 | *-*-solaris2                         \
 | *-*-solaris2.[0-8]                   \
 | *-*-solaris2.[0-8].*                 \
 | *-*-sysv*                            \
 | vax-*-vms*                           \
 )
        echo "*** Configuration ${target} not supported" 1>&2
        exit 1
        ;;
esac

The first case shows
case ${target} in
 # Avoid special cases that are not obsolete
   arm*-*-*eabi*                        \
 )
        ;;

Although I have no idea which part of buildroot system converts
arm*-*-uclinux* to arm*-*-uclinux*eabi.
The build result shows arm-buildroot-uclinux-uclibcgnueabi which matches
the first case.
So I think it's ok to set TARGET_OS=uclinux.

Regards,
Axel



More information about the buildroot mailing list