On 2008-09-17, Grant Edwards <[EMAIL PROTECTED]> wrote:
> On 2008-09-16, Grant Edwards <[EMAIL PROTECTED]> wrote:
>> I'm attempting to follow the "getting started" article at 
>> http://www.ucdot.org/archive/tb/tb20020807.shtml.  I'm trying
>> to build uClinux-dist-20080808 for the xcopilot target using
>> toolchain binaries from m68k-uclinux-tools-20061214.tar.bz2.
>>
>> None of the kernel versions will build.
>
> I gave up on the xcopilot target, and decided to try to build
> the Samsung S3C4510B target using arm-linux-tools-20070808.  
>
> There is no 2.6 or 2.0 configuration for the S3C4510, so I
> tried to build 2.4.  That fails:

OK, so I gave up on xcopilot, and I gave up on S3C4510. 

There must be at least _one_ target that builds -- right?

Seriously.  There is, isn't there?

Next, I decided to try to build for the Snapgear LITE target. 

Since I've got a couple Snapgear LITES sitting in a box
somewhere, I thought I'd try it next.

Here's how that fails:

    $ make dep
    which: no m68k-uclinux-20060615-gcc in 
(/opt/uclinux/bin:/home/grante/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.2:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/gnu/bin)
    make ARCH=m68knommu CROSS_COMPILE=m68k-uclinux- -C linux-2.4.x dep
    make[1]: Entering directory `/home/grante/uclinux/uClinux-dist/linux-2.4.x'
    rm -f .depend .hdepend
    make _sfdep_arch/m68knommu/kernel _sfdep_arch/m68knommu/mm 
_sfdep_arch/m68knommu/lib _sfdep_arch/m68knommu/platform/5272 _sfdep_kernel 
_sfdep_drivers _sfdep_mmnommu _sfdep_fs _sfdep_net _sfdep_ipc _sfdep_lib 
_sfdep_crypto _FASTDEP_ALL_SUB_DIRS="arch/m68knommu/kernel arch/m68knommu/mm 
arch/m68knommu/lib arch/m68knommu/platform/5272 kernel drivers mmnommu fs net 
ipc lib crypto"
    make[2]: Entering directory `/home/grante/uclinux/uClinux-dist/linux-2.4.x'
    make -C arch/m68knommu/kernel fastdep
    make[3]: Entering directory 
`/home/grante/uclinux/uClinux-dist/linux-2.4.x/arch/m68knommu/kernel'
    /home/grante/uclinux/uClinux-dist/linux-2.4.x/scripts/mkdep -fno-builtin 
-nostdinc -D__KERNEL__ -I/home/grante/uclinux/uClinux-dist/linux-2.4.x/include  
-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fno-builtin-sprintf -fomit-frame-pointer -Wno-pointer-sign -I 
/usr/local/lib/gcc/m68k-uclinux/4.1.1//include -pipe -DNO_MM -DNO_FPU -m5307 
-Wa,-S -Wa,-m5307 -D__ELF__ -DMAGIC_ROM_PTR -DUTS_SYSNAME=\"uClinux\" 
-D__linux__ -O1  -nostdinc -iwithprefix include -- bios32.c console.c 
m68k_defs.c m68k_ksyms.c process.c ptrace.c semaphore.c setup.c sys_m68k.c 
time.c traps.c > .depend
    realpath(/usr/local/lib/gcc/m68k-uclinux/4.1.1//include) failed, No such 
file or directory
    make[3]: *** [fastdep] Error 1
    make[3]: Leaving directory 
`/home/grante/uclinux/uClinux-dist/linux-2.4.x/arch/m68knommu/kernel'
    make[2]: *** [_sfdep_arch/m68knommu/kernel] Error 2
    make[2]: Leaving directory `/home/grante/uclinux/uClinux-dist/linux-2.4.x'
    make[1]: *** [dep-files] Error 2
    make[1]: Leaving directory `/home/grante/uclinux/uClinux-dist/linux-2.4.x'
    make: *** [dep] Error 2

I'm a little suspicious of that first line of output from
which.  Why is looking for m68k-uclinux-20060615-gcc?

$ grep -r 20060615 .
./vendors/config/m68knommu/config.arch:ifneq ($(shell which 
m68k-uclinux-20060615-gcc),)
./vendors/config/m68knommu/config.arch:CROSS_COMPILE = m68k-uclinux-20060615-

What's so special about that particular version of the
m68k-uclinux toolchain?

Should we not use a later toolchain?

Is using too recent a toolchain with m68k targets what causes
the thousands of warnings like these?

namei.c:2050: warning: matching constraint does not allow a register
namei.c:2050: warning: matching constraint does not allow a register
namei.c:2050: warning: matching constraint does not allow a register
namei.c:2050: warning: matching constraint does not allow a register
namei.c:2050: warning: matching constraint does not allow a register
namei.c:2050: warning: matching constraint does not allow a register

Are those warnings something about which I should be concerned?

I'm not sure if that complaint from "which" has anything to do
with the later failure which is caused by a non-existant
directory path being passed to mkdep:

  -I /usr/local/lib/gcc/m68k-uclinux/4.1.1//include

That's wront because my toolchain is not installed in
/usr/local.  I do development for several different targets and
OSes, and you can't assuming you can install things with names
like m68k-elf-gcc in /usr/local/bin without conflicts.  So the
uclinux tools are installed in /opt/uclinux instead of
/usr/local.

But, I can't figure out where that bogus path is being set. The
most portable thing to do would be to do something like the
following (in bash syntax):

  $(dirname $(${CROSS_COMPILE}-gcc --print-libgcc-file))/include

Anyhow, I'll add a symlink from /usr/local/lib/gcc/m68k-uclinux
and try again...
  
-- 
Grant


_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to