Bug 13893

Summary: cross compile issue with prefix: ld.so.conf not found
Product: glibc Reporter: glibc
Component: buildAssignee: Andreas Jaeger <aj>
Status: RESOLVED FIXED    
Severity: minor CC: aj, carlos, glibc
Priority: P2 Keywords: glibc_2.14
Version: 2.14Flags: fweimer: security-
Target Milestone: ---   
Host: i686 Target: arm
Build: 2.14.1 Last reconfirmed:

Description glibc 2012-03-22 22:51:54 UTC
host/build/target: 
i696/2.14.1/arm

uname -a (modified hostname):
Linux computer.site.tld 2.6.37.6-0.11-desktop #1 SMP PREEMPT 2011-12-19 23:39:38 +0100 i686 i686 i386 GNU/Linux

configure options:
configure --target=arm-linux --prefix=/usr/local/arm-linux --enable-add-on

gcc -v:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper
Target: i586-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=i586-suse-linux
Thread model: posix
gcc version 4.5.1 20101208 [gcc-4_5-branch revision 167585] (SUSE Linux) 

ld -v:
GNU ld (GNU Binutils; openSUSE 11.4) 2.21

How to replicate:

After configure I then run make, which works fine. When it gets to the make install I see this error:

Can't open configuration file /usr/local/arm-linux/etc/ld.so.conf: No such file or directory make[1]: Leaving directory


I was able to fix this by doing the following:

mkdir -p /usr/local/arm-linux/etc
touch /usr/local/arm-linux/etc/ld.so.conf

Then running configure, make, make install.

As a suggestion, in the configure script, if the prefix is passed in that a check is performed for a ld.so.conf; if there is not then touch it.

If there is anything else I can provide, let me know.
Comment 1 Andreas Jaeger 2012-05-08 19:07:26 UTC
do you mean something like:

test ! -x /home/aj/build/glibc/testing/elf/ldconfig || LC_ALL=C LANGUAGE=C \
  /home/aj/build/glibc/testing/elf/ldconfig -r /tmp/test-glibc-install \
                               /lib64 /usr/lib64
/home/aj/build/glibc/testing/elf/ldconfig: Can't open configuration file /tmp/test-glibc-install/etc/ld.so.conf: No such file or directory
make[1]: Leaving directory `/home/aj/cvs/glibc'

This is not a problem at all, ldconfig just returns since no config is available. You can ignore this.
Comment 2 Andreas Jaeger 2012-05-09 04:11:55 UTC
I've changed the message now to:
Warning: ignoring configuration file that cannot be opened: 

Commit to git.

2012-05-09  Andreas Jaeger  <aj@suse.de>

	[BZ #13983]
	* elf/ldconfig.c (parse_conf): Change string to make clear that
	ldconfig only issued a warning if ld.so.conf does not exist.