This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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: Trouble putting together a glibc-2.3.5 addon for ColdFire


>Is there a glibc-ports-3.3.5 directory anywhere in the
>source or build directories?
>   cd /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool
>   find . -name glibc-ports-3.3.5

[peter@thunk glibc-2.3.5]$ pwd
/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5
[peter@thunk glibc-2.3.5]$ find . -name glibc-ports-2.3.5
./glibc-ports-2.3.5
[peter@thunk glibc-2.3.5]$ 

So yes, the ports directory is just under the glibc-2.3.5 source dir
that the ports/README says to put it.

>Does that string occur anywhere in any file in those directories?
>   find . -type f | xargs grep glibc-ports-2.3.5

I've got *lots* of output with glibc-ports-2.3.5:

build-glibc/config.log
build-glibc/config.status
build-glibc/sysd-rules  (small excerpt from the beginning):

./build-glibc/config.status:s,@add_ons@,linuxthreads glibc-ports-2.3.5,;t t
./build-glibc/config.status:s,@sysnames@, glibc-ports-2.3.5/sysdeps/coldfire/elf linuxthreads/sysdeps/unix/sysv/linux linuxthreads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sysv linuxthreads/sysdeps/unix linuxthreads/sysdeps/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux glibc-ports-2.3.5/sysdeps/unix/sysv glibc-ports-2.3.5/sysdeps/unix glibc-ports-2.3.5/sysdeps/coldfire/fpu glibc-ports-2.3.5/sysdeps/coldfire sysdeps/wordsize-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix sysdeps/posix sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic,;t t
./build-glibc/sysd-rules:sysd-rules-sysdirs := glibc-ports-2.3.5/sysdeps/coldfire/elf linuxthreads/sysdeps/unix/sysv/linux linuxthreads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sysv linuxthreads/sysdeps/unix linuxthreads/sysdeps/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux glibc-ports-2.3.5/sysdeps/unix/sysv glibc-ports-2.3.5/sysdeps/unix glibc-ports-2.3.5/sysdeps/coldfire/fpu glibc-ports-2.3.5/sysdeps/coldfire sysdeps/wordsize-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix sysdeps/posix sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic
./build-glibc/sysd-rules:$(objpfx)%.o: $(..)glibc-ports-2.3.5/sysdeps/coldfire/elf/%.S $(before-compile);  $(compile-command.S)
./build-glibc/sysd-rules:$(objpfx)%.o: $(..)glibc-ports-2.3.5/sysdeps/coldfire/elf/%.s $(before-compile);  $(compile-command.s)
./build-glibc/sysd-rules:$(objpfx)rtld-%.o: $(..)glibc-ports-2.3.5/sysdeps/coldfire/elf/%.S $(before-compile);  $(compile-command.S)

build-glibc/config.make:
./build-glibc/config.make:config-sysdirs =  glibc-ports-2.3.5/sysdeps/coldfire/elf linuxthreads/sysdeps/unix/sysv/linux linuxthreads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sysv linuxthreads/sysdeps/unix linuxthreads/sysdeps/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux glibc-ports-2.3.5/sysdeps/unix/sysv glibc-ports-2.3.5/sysdeps/unix glibc-ports-2.3.5/sysdeps/coldfire/fpu glibc-ports-2.3.5/sysdeps/coldfire sysdeps/wordsize-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix sysdeps/posix sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic
./build-glibc/config.make:add-ons = linuxthreads glibc-ports-2.3.5

./build-glibc/bits/stdio_lim.d: $(..)glibc-ports-2.3.5/sysdeps/coldfire/bits/endian.h $(..)include/sys/select.h \
./build-glibc/bits/stdio_lim.d:$(..)glibc-ports-2.3.5/sysdeps/coldfire/bits/endian.h:
./build-glibc/sysd-syscalls:#### DIRECTORY = glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire
./build-glibc/sysd-syscalls:#### SYSDIRS = glibc-ports-2.3.5/sysdeps/coldfire/elf linuxthreads/sysdeps/unix/sysv/linux linuxthreads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sysv linuxthreads/sysdeps/unix linuxthreads/sysdeps/coldfire
./build-glibc/sysd-syscalls:#### SYSDIRS = glibc-ports-2.3.5/sysdeps/coldfire/elf linuxthreads/sysdeps/unix/sysv/linux linuxthreads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sysv linuxthreads/sysdeps/unix linuxthreads/sysdeps/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire glibc-ports-2.3.5/sysdeps/unix/sysv/linux glibc-ports-2.3.5/sysdeps/unix/sysv glibc-ports-2.3.5/sysdeps/unix glibc-ports-2.3.5/sysdeps/coldfire/fpu glibc-ports-2.3.5/sysdeps/coldfire sysdeps/wordsize-32 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32
./build-glibc/sysd-syscalls:#### CALL=getegid NUMBER=50 ARGS=i:
SOURCE=glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire/getegid.c

(I dropped the other syscalls from the output of sysd/syscalls)

./build-glibc/sysd-sorted:sorted-subdirs = csu iconv iconvdata locale localedata assert ctype intl catgets math setjmp signal stdlib stdio-common libio dlfcn malloc string wcsmbs timezone time dirent grp pwd posix io termios resource misc socket sysvipc gmon gnulib wctype manual shadow po argp crypt linuxthreads glibc-ports-2.3.5 resolv nss rt conform debug linuxthreads_db inet hesiod sunrpc nis nscd streams login elf 

(Then scads of dependency files (just the first line from the *giant*
list of files) including a plethora in build-glibc/elf/):

./build-glibc/csu/sysdep.o.d: ../glibc-ports-2.3.5/sysdeps/unix/sysv/linux/coldfire/sysdep.S \

>If that doesn't help, try figuring out the smallest shell
>script to reproduce the error, e.g.
>   export PATH=...
>   cd /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc
>   make lib

That repeats it.

...
make[2]: Leaving directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5/login'
make  -C elf subdir_lib
make[2]: Entering directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5/elf'
make[2]: *** No rule to make target `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/glibc-ports-2.3.5/stamp.os', needed by `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc_pic.a'.  Stop.
make[2]: Leaving directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5'

I ran make with --debug=b and got:

make[2]: Leaving directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5/login'
        Successfully remade target file `login/subdir_lib'.
         File `elf/subdir_lib' does not exist.
        Must remake target `elf/subdir_lib'.
make  -C elf subdir_lib
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Reading makefiles...
Updating goal targets....
 File `subdir_lib' does not exist.
   File `lib-noranlib' does not exist.
     File `libobjs' does not exist.
    Must remake target `libobjs'.
    Successfully remade target file `libobjs'.
     File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/ld.so.1' does not exist.
       File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/ld.so' does not exist.
         File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/librtld.os' does not exist.
           File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/rtld-libc.a' does not exist.
             File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/librtld.mk' does not exist.
               File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/librtld.map' does not exist.
                 File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc_pic.a' does not exist.
                   File `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/glibc-ports-2.3.5/stamp.os' does not exist.
                  Must remake target `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/glibc-ports-2.3.5/stamp.os'.
make[2]: Entering directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5/elf'
make[2]: *** No rule to make target `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/glibc-ports-2.3.5/stamp.os', needed by `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc_pic.a'.  Stop.

So it looks like its just about to attempt to arciver together
libc_pic.a, but can't figure out how to make
build-glibc/glibc-ports-2.3.5/stamp.os, and can't since there's no
subdir(for starters).

>If that reproduces it, then try to figure out a smaller target
>that also reproduces it, e.g.
>   export PATH=...
>   cd /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc
>   make libc_pic.a
>If that also reproduces it, then maybe you have a chance of
>interpreting make's verbose output then.

Nope, that fails with:

[peter@thunk build-glibc]$ make libc_pic.a
make -r PARALLELMFLAGS="" CVSOPTS="" -C /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5 objdir=`pwd` libc_pic.a
make[1]: Entering directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5'
make[1]: *** No rule to make target `libc_pic.a'.  Stop.
make[1]: Leaving directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5'
make: *** [libc_pic.a] Error 2

>And then there's always understanding the Makefile structure better -
>which is a bit of an adventure with glibc.  It uses
>lots of features of gnu make I'd never seen used before.

I vaguely remember going through this a couple of years ago, but all
it brings back is *pain* from following all the contorted paths trying
to figure out what's happening.  Nobody has a crib sheet on how
glibc's make structure is put together, right?

Any other suggestions?  It really look slike configure is quite happy
wiht the addon, but unlike the linuxthreads add-on(which has a
build-glibc/linuxthreads subdir and stamp.os), it doesn't quite know
what to do with my add-on port directory.

Has anyone used crosstool to build add-on ports (am29k, am33, cris,
i860, i960, m88k, tahoe, vax, z8000)?  I know those ports are all old,
just wondering...

-- 
Peter Barada
peter@the-baradas.com

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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