This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
glibc port to non-linux platform
- From: "James Laros" <jhlaros at sandia dot gov>
- To: libc-help at sourceware dot org
- Date: Wed, 22 Oct 2008 17:12:20 -0600
- Subject: glibc port to non-linux platform
- Organization: Sandia National Labs
- Reply-to: jhlaros at sandia dot gov
This question concerns porting glibc to a non-linux x86_64 target.
Some time ago we successfully ported a static version of glibc (2.3.2)
to this target. We are now trying to build the same version shared and
are running into some issues that we hope someone can shed some light on.
The build fails with the following error:
make[5]: Leaving directory
`/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/ctype'
make -C ../elf
objdir=/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/build/cnos64
-f Makefile -f ../elf/rtld-Rules rtld-all
rtld-modules='rtld-dl-profstub.os rtld-dl-libc.os rtld-dl-open.os
rtld-dl-close.os'
make[5]: Entering directory
`/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/elf'
../elf/rtld-Rules:34: *** missing separator. Stop.
make[4]: ***
[/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/build/cnos64/elf/rtld-dl-profstub.os]
Error 2
make[3]: ***
[/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/build/cnos64/elf/rtld-libc.a]
Error 2
make[2]: *** [elf/subdir_lib] Error 2
make[1]: *** [install] Error 2
make: *** [glibc_for_catamount_apps] Error 2
make[5]: Leaving directory
`/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/elf'
make[4]: Leaving directory
`/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/elf'
make[3]: Leaving directory
`/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc/elf'
make[2]: Leaving directory
`/rsc/home/jhlaros/CNW_SVN_glibc/trunk/pe/computelibs/glibc'
My understanding is this happens because at this point the build should
not descend into the subdir elf as evidenced by this in elf/rtld-Rules
file lines:
ifndef rtld-subdirs
error This is makefile is a subroutine of elf/Makefile not to be used
directly
endif
My guess is that in a typical environment the build will not attempt to
enter elf. I have built for a Linux client as a sanity check and in fact
the rtld-subdirs at the bottom of build/elf/librtld.mk does not include elf.
Further my guess is that in our port much more will be required of the
build at this stage since it will not be found elsewhere in the target
environment. This is further evidenced by the librtld.map file
differences between the standard Linux build and our target build. Our
target build containing many more symbol references which leads to the
larger number of subdirs in the librtld.mk file.
First any advice on the best way to proceed would be helpful. I can try
to hack the build process to try and make it through all of the subdir
builds but it would help if I knew why the rtld-Rules file contains this
protection.
Jim
--
James H. Laros III Phone: 505-845-8532
Dept. 1422 email: jhlaros@sandia.gov
Scalable Computer Architectures
Sandia National Labs
"The history of liberty is a history of the limitations of
governmental power, not the increase of it." - Wilson