LTIB on Ubuntu 12.04

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LTIB on Ubuntu 12.04

42,080 Views
rheine
Contributor I

Hello, I was trying to install an the LTIB on Ubuntu 12.04. I have got through all of the package installs and changed the Ltibutils.pm to find the glibc-devel and zlib. I am stuck when running it errors with a host_config.log that contains only this:

rpmdb: --force-debian: unknown option
Died at ./ltib line 2337.
traceback:
 main::setup_rpmdb:2337
  main::check_rpm_setup:2400
   main::host_checks:1423
    main:542


Started: Tue Aug  7 11:15:31 2012
Ended:   Tue Aug  7 11:15:31 2012
Elapsed: 0 seconds


Build Failed

47 Replies

3,466 Views
larryharmon
Contributor II

When I attempt to use ltib on Ubuntu 10.0 the root.squashfs does not get built

The P1020MSBG_WLAN_RDB-release-notes.txt release notes say:

IV. How to update the image:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Open tftp server and secureCRT with a baud rate of 115200
2. Run script file tftpdown-p1020wlan-nor.vbs in secureCRT to update P1020WLAN image, or tftpdown-p1020rdb-nand.vbs for P1020RDB board, or tftpdown-p1020msbg-nor.vbs for P1020MSBG.
3. uImage, root.squashfs and rootfs.image.gz can be used for both P1020WLAN and P1020RDB boards.
4. p1020wlan.dtb is used for P1020WLAN, p1020rdb.dtb is only for P1020RDB board, and p1020msbg.dtb for P1020MSBG board.
5. u-boot-rdb.bin is used for P1020RDB board, and as u-boot.bin is used for P1020WLAN X5 REV B board,

V. Known Issues and Workaround:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Features are supported in Beta release:

1. Squashfs filesytem compiled with Ubuntu Linux on some PC cannot run on this board.

0 Kudos
Reply

3,466 Views
brunoceldran
Contributor I

Hi,

I'm trying to build an image from L3.0.35_12.09.01, on Ubuntu 12.04. Each step went well, but I have an error with Busybox. I tried all the modifications and pateches quoted in the previous posts.

networking/udhcp/common.c: In function 'udhcp_str2optset':

networking/udhcp/common.c:512:218: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/common.c:530:242: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/common.c:530:242: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/udhcp/common.o] Error 1

make[1]: *** Waiting for unfinished jobs....

networking/udhcp/dhcpd.c: In function 'select_lease_time':

networking/udhcp/dhcpd.c:136:255: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/dhcpd.c:136:255: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/udhcp/dhcpd.o] Error 1

networking/udhcp/dumpleases.c: In function 'dumpleases_main':

networking/udhcp/dumpleases.c:85:251: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/dumpleases.c:85:251: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/udhcp/dumpleases.o] Error 1

networking/udhcp/dhcprelay.c: In function 'dhcprelay_main':

networking/udhcp/dhcprelay.c:291:24: error: impossible constraint in 'asm'

make[1]: *** [networking/udhcp/dhcprelay.o] Error 1

networking/udhcp/dhcpc.c: In function 'init_packet':

networking/udhcp/dhcpc.c:583:218: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/udhcp/dhcpc.o] Error 1

networking/udhcp/files.c: In function 'read_config':

networking/udhcp/files.c:116:336: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/files.c:116:336: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/files.c:117:332: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/files.c:117:332: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/udhcp/files.o] Error 1

networking/udhcp/leases.c: In function 'find_free_or_expired_nip':

networking/udhcp/leases.c:169:234: error: invalid 'asm': invalid operand for code 'w'

networking/udhcp/leases.c:169:234: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/udhcp/leases.o] Error 1

make: *** [networking/udhcp] Error 2

networking/httpd.c: In function 'handle_incoming_and_exit':

networking/httpd.c:1939:285: error: invalid 'asm': invalid operand for code 'w'

networking/httpd.c:1939:285: error: invalid 'asm': invalid operand for code 'w'

make[1]: *** [networking/httpd.o] Error 1

make: *** [networking] Error 2

error: Bad exit status from /home/bruno/ltib/tmp/rpm-tmp.39174 (%build)

RPM build errors:

    Bad exit status from /home/bruno/ltib/tmp/rpm-tmp.39174 (%build)

Build time for busybox: 4 seconds

The files are not always the same, but I get always the same error. I guess it's that there is a mixup between the host and the target headers, so as explained here : Invalid Operand for Code W « Nerdland

I don't find where I should specify the correct path...

0 Kudos
Reply

3,466 Views
EricNelson
Senior Contributor II

I found another quirk while building an LTIB image from L3.0.35_12.09.03. It appears that the configure script for alsa-utils leaks information from the host ncurses installation. In particular, it uses a script named 'ncurses5-config' to determine which libraries to link against.

On Ubuntu 12.04, ncurses5 depends on a library named 'tinfo', which isn't present in the LTIB source package.

The attached patch is a hack to get around this.

To use it, you'll also need to hack dist/lfs-5.1/alsa-utils/alsa-utils.spec like so:

--- dist/lfs-5.1/alsa-utils/alsa-utils.spec.bak     2012-12-18 10:35:59.750755780 -0700
+++ dist/lfs-5.1/alsa-utils/alsa-utils.spec     2012-12-18 10:35:59.750755780 -0700
@@ -11,6 +11,7 @@
 Source          : alsa-utils-%{version}.tar.bz2
 #Patch1          : alsa-utils-1.0.10-cf.patch
 #Patch2          : alsa-utils-1.0.11rc2-ldl.patch
+Patch1          : alsa-utils-1.0.24.2-1355852159.patch
 BuildRoot       : %{_tmppath}/%{name}
 Prefix          : %{pfx}
 
@@ -24,6 +25,7 @@
 %setup
 #%patch1 -p1
 #%patch2 -p1
+%patch1 -p1
 
 %Build
 if [ -n "$UCLIBC" ]
0 Kudos
Reply

3,469 Views
LeonardoSandova
Specialist I

For those using Ubuntu 12.04, there is a  script with do all the necessary patching. Please refer to

patch-ltib-ubuntu12.04.sh

In fact, you don't even need to download it, just go to the above link, COPY the download link and under your ltib folder, run the following command:

$ curl -L <link> | bash


where <link> should be something like


https://community.freescale.com/servlet/JiveServlet/downloadBody/<latest version>/patch-ltib-ubuntu12.04.sh

I hope it works.

3,469 Views
JeremyStashluk
Contributor III

Not quite.

...

gcc -O2 -Wall -Wno-implicit -o wget cmpt.o connect.o convert.o cookies.o ftp.o ftp-basic.o ftp-ls.o ftp-opie.o hash.o headers.o host.o html-parse.o html-url.o http.o init.o log.o main.o gen-md5.o netrc.o progres

gen_sslfunc.o: In function `init_ssl':

gen_sslfunc.c:(.text+0x343): undefined reference to `SSLv2_client_method'

collect2: ld returned 1 exit status

make[1]: *** [wget] Error 1

make[1]: Leaving directory `/opt/freescale/ltib/usr/src/rpm/BUILD/wget-1.9.1/src'

make: *** [src] Error 2

error: Bad exit status from /home/jstashluk/software/seemore/os/ltib/tmp/rpm-tmp.31174 (%build)

RPM build errors:

    Bad exit status from /home/jstashluk/software/seemore/os/ltib/tmp/rpm-tmp.31174 (%build)

Build time for wget: 14 seconds

Failed building wget

Died at ./ltib line 1392.

traceback:

main::build_host_rpms:1392

  main::host_checks:1447

   main:554

Started: Thu Oct 11 10:03:53 2012

Ended:   Thu Oct 11 10:04:08 2012

Elapsed: 15 seconds

These packages failed to build:

wget

Build Failed

0 Kudos
Reply

3,470 Views
LeonardoSandova
Specialist I

Hi Jeremy,

I have not seen that error before. Can you try these commands:

$ ./ltib -m prep -p wget

$ ./ltib -m scbuild -p wget

Also please execute this command

dpkg --get-selections | grep ssl

and send me log. Are you using the Desktop or Server version?

Leo

0 Kudos
Reply

3,466 Views
xuankong
Contributor II

Hi,

I meet the same error with Jeremy. I tried your solution listed below:

$ ./ltib -m prep -p wget

$ ./ltib -m scbuild -p wget

but the error still occurs. I attached two log files (one is my original log file, the other one is the log file after I did the above two commands).

and I also did

$ dpkg --get-selections | grep ssl

and the output is listed below.

$ dpkg --get-selections | grep ssl

libio-socket-ssl-perl                install

libnet-smtp-ssl-perl                install

libnet-ssleay-perl                install

libssl-dev                    install

libssl-doc                    install

libssl0.9.8:i386                install

libssl1.0.0                    install

libssl1.0.0:i386                install

openssl                        install

python-openssl                    install

ssl-cert                    install


Can you help me to solve the problem?

Any ideas?


0 Kudos
Reply

3,466 Views
EricNelson
Senior Contributor II

Jeremy's solution was to edit wget.spec to remove openssl as shown above.

0 Kudos
Reply

3,469 Views
JohnCannizzo
Contributor III

I'm seeing a different error.  I'm using Ubuntu 12.04 for ltib for the iMX6 kernel L3.0.35_12.09.01_ER_SOURCE.  I applied the patch file above.  When I ran ./ltib, it failed with "error: failed to stat /home/jc3/.gvfs: Permission denied". Partial host_config.log below:

done

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/BUILD

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/SOURCES

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/SPECS

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/SRPMS

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/i386

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/i486

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/i586

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/i686

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/athlon

/bin/sh ./mkinstalldirs /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/noarch

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/opt/freescale/ltib/usr/src/rpm/RPMS/noarch

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/var

mkdir /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386/var/tmp

make[2]: Leaving directory `/tmp/rpm-jc3/BUILD/rpm-4.0.4'

make[1]: Leaving directory `/tmp/rpm-jc3/BUILD/rpm-4.0.4'

+ echo /opt/freescale/ltib/usr

+ sed -e s,/usr$,,

+ var=/opt/freescale/ltib/var

+ echo /opt/freescale/ltib/usr

+ sed -e s,/usr$,,

+ etc=/opt/freescale/ltib/etc

+ mkdir -p /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/pkgs

+ chmod 777 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/pkgs

+ mkdir -p /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/var/tmp

+ chmod 777 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/var/tmp

+ chmod 777 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/BUILD /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/SOURCES /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/SPECS /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/SRPMS

+ chmod 777 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS/athlon /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS/i386 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS/i486 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS/i586 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS/i686 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/src/rpm/RPMS/noarch

+ mkdir -p /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/etc/rpm

+ chmod 777 /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/etc/rpm

+ chmod -x /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/lib/rpm/perl.req

+ cd /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386//opt/freescale/ltib/usr/lib/rpm

+ perl -pi -e s,([ :])/usr/lib/rpm,\1/opt/freescale/ltib/usr/lib/rpm,g cpanflute cpanflute2 find-provides find-provides.perl find-requires find-requires.perl macros rpmpopt-4.0.4 rpmrc trpm

+ cd -

/tmp/rpm-jc3/BUILD/rpm-4.0.4

+ /usr/lib/rpm/brp-compress

+ /usr/lib/rpm/brp-strip strip

+ /usr/lib/rpm/brp-strip-static-archive strip

+ /usr/lib/rpm/brp-strip-comment-note strip /usr/bin/objdump

Processing files: rpm-fs-4.0.4-1.i686

unknown, 0: Warning: using regular magic file `/etc/magic'

Provides: libbeecrypt.so.2 libpopt.so.0 librpm-4.0.4.so librpmbuild-4.0.4.so librpmdb-4.0.4.so librpmio-4.0.4.so libtool(/opt/freescale/ltib/usr/lib/libbeecrypt.la) libtool(/opt/freescale/ltib/usr/lib/libpopt.la) libtool(/opt/freescale/ltib/usr/lib/librpm.la) libtool(/opt/freescale/ltib/usr/lib/librpmbuild.la) libtool(/opt/freescale/ltib/usr/lib/librpmdb.la) libtool(/opt/freescale/ltib/usr/lib/librpmio.la) perl(RPM::Specfile) = 1.02

Requires(interp): /bin/sh

Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1

Requires(post): /bin/sh

Requires: /bin/bash /bin/sh /usr/bin/perl libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.11) libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.2.3) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.2) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) libpopt.so.0 libpthread.so.0 libpthread.so.0(GLIBC_2.0) libpthread.so.0(GLIBC_2.2) libpthread.so.0(GLIBC_2.3.2) librpm-4.0.4.so librpmbuild-4.0.4.so librpmdb-4.0.4.so librpmio-4.0.4.so librt.so.1 librt.so.1(GLIBC_2.1) libz.so.1 perl(Archive::Tar) perl(CGI) perl(Data::Dumper) perl(File::Basename) perl(File::Copy) perl(File::stat) perl(Getopt::Long) perl(POSIX) perl(Specfile) perl(Sys::Hostname) perl(lib) perl(strict) perl(vars) rtld(GNU_HASH)

Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386

Wrote: /tmp/rpm-jc3/RPMS/i686/rpm-fs-4.0.4-1.i686.rpm

Executing(%clean): /bin/sh -e /home/jc3/mx6/ltib/tmp/rpm-tmp.WQxWTZ

+ umask 022

+ cd /tmp/rpm-jc3/BUILD

+ cd rpm-4.0.4

+ rm -rf /tmp/rpm-jc3/BUILDROOT/rpm-fs-4.0.4-1.i386

+ exit 0

Executing(--clean): /bin/sh -e /home/jc3/mx6/ltib/tmp/rpm-tmp.knTAbH

+ umask 022

+ cd /tmp/rpm-jc3/BUILD

+ rm -rf rpm-4.0.4

+ exit 0

Build time for rpm-fs: 140 seconds

warning: Generating 12 missing index(es), please wait...

sudo rpm --force-debian --root / --dbpath /tmp/rpm-jc3/rpmdb -e --allmatches --nodeps --define '_tmppath /home/jc3/mx6/ltib/tmp' rpm-fs 2>/dev/null

sudo rpm --force-debian --root / --dbpath /tmp/rpm-jc3/rpmdb --ignorearch -ivh --force --nodeps --excludedocs --define '_tmppath /home/jc3/mx6/ltib/tmp' /tmp/rpm-jc3/RPMS/i686/rpm-fs-4.0.4-1.i686.rpm

Preparing...            ##################################################
rpm-fs                  ##################################################

sudo /opt/freescale/ltib/usr/bin/rpm --root / --dbpath /opt/freescale/ltib/var/lib/rpm -Uv --justdb --notriggers --noscripts --nodeps /tmp/rpm-jc3/RPMS/i686/rpm-fs-4.0.4-1.i686.rpm

error: failed to stat /home/jc3/.gvfs: Permission denied

Preparing packages for installation...

Updating lpp from local packages

+ cp -dp /home/jc3/mx6/ltib/pkgs/16colors.txt /opt/freescale/pkgs/16colors.txt

+ cp -dp /home/jc3/mx6/ltib/pkgs/16colors.txt.md5 /opt/freescale/pkgs/16colors.txt.md5

+ cp -dp /home/jc3/mx6/ltib/pkgs/alsa-lib-1.0.24.1 /opt/freescale/pkgs/alsa-lib-1.0.24.1

cp: omitting directory `/home/jc3/mx6/ltib/pkgs/alsa-lib-1.0.24.1'

Died at ./ltib line 2518.

traceback:

main::check_dirs:2518

  main::host_checks:1438

   main:554

Started: Fri Nov 30 12:52:22 2012

Ended:   Fri Nov 30 12:54:45 2012

Elapsed: 143 seconds

Build Failed


0 Kudos
Reply

3,466 Views
EricNelson
Senior Contributor II

Hi John,


Did you get past this one? It looks like you have root ownership on your /opt/freescale tree.

0 Kudos
Reply

3,466 Views
JohnCannizzo
Contributor III

I got to the ltib menu, selected various options, and proceeded to build the kernel image.  Busybox fails:

  LINKbusybox_unstripped

Trying libraries: m

Failed: -Wl,--start-group -lm -Wl,--end-group

Output of:

gcc -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -Os -o busybox_unstripped -Wl,--start-group applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group -lm -Wl,--end-group

==========

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find /lib/libc.so.6

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find /usr/lib/libc_nonshared.a

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find /lib/ld-linux.so.3

collect2: ld returned 1 exit status

make: *** [busybox_unstripped] Error 1

error: Bad exit status from /home/jc3/mx6/ltib/tmp/rpm-tmp.89700 (%build)

RPM build errors:

Bad exit status from /home/jc3/mx6/ltib/tmp/rpm-tmp.89700 (%build)

Build time for busybox: 10 seconds

Failed building busybox

f_buildrpms() returned an error, exiting

traceback:

main:572

Started: Mon Dec  3 09:30:40 2012

Ended:   Mon Dec  3 09:30:52 2012

Elapsed: 12 seconds

These packages failed to build:

busybox

Build Failed

Exiting on error or interrupt

jc3@jc3-ubuntu:~/mx6/ltib$


Any suggestions would be most appreciated...

0 Kudos
Reply

3,466 Views
EricNelson
Senior Contributor II

Hi John,

I just noticed that my earlier note was cryptic, but in this case, you're seeing the same problem as I had: LTIB is trying to find libraries in your host system directories. In other words, it's trying to load /lib/libc.so.6 instead of finding the library within the LTIB tree.

The answer seems to be simple. Go into ltib/dist/lfs/base_libs/base_libs.spec and find these lines:

     # remove absolute paths from text search files (if they exist)

     perl -w -e '

         @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV;

         exit(0) unless @ARGV;

Remove the last two (the lines beginning with "@ARGV" and "exit(0)" and you should be good to go.

3,469 Views
JeremyStashluk
Contributor III

I have this exact problem:

https://community.freescale.com/message/289362#289362

Adding "--without-ssl" to the configure line in the wget.spec file gets me past it.

Next problem:

Ubuntu 12.04-64 has no: /usr/include/sys/types.h

I made it a symbolic link to /usr/include/x86_64-linux-gnu/sys/types.h

Next problem:

while building busybox

/lib/libc.so.6: file not recognized: File format not recognized

logs are attached.

0 Kudos
Reply

3,469 Views
johnw
Contributor III

Hi Jeremy -

First off is that types.h problem in elftosb?  I had the same problem and the right way to fix it is to change the source code headers (stdafx.h and common/stdafx.h) to use <sys/types.h> rather than an absolute path.

Regarding the busybox build issue - Have you had any luck on this?  I'm in the same boat here.

0 Kudos
Reply

3,469 Views
JeremyStashluk
Contributor III

Yes, it was with elfosb.  Thanks for the correct fix.

As for the busybox problem.  I'm not sure if/why we are not really in the LTIB shell when it reads the ..../ltib/rootfs/usr/lib/libc.so linker script, but the build script tries to find the files on the normal host filesystem instead of the LTIB filesystem/toolchain.

I changed the last line of the linker script to:

GROUP ( /home/jstashluk/software/project/os/ltib/rootfs/lib/libc.so.6 /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/multi-libs/default/usr/lib/libc_nonshared.a  AS_NEEDED (  /home/jstashluk/software/project/os/ltib/rootfs/lib/ld-linux.so.3 ) )


Perhaps it would be better to remove the path info altogether as it appears in the libc.so script on my Ubuntu 10.10 VM?

0 Kudos
Reply

3,469 Views
johnw
Contributor III

Thanks Jeremy. Which linker script are you referring to? A busybox script (scripts/trylink)?

0 Kudos
Reply

3,469 Views
JeremyStashluk
Contributor III

These aren't really shared libraries, they are linker scripts.  I'm not sure what is responsible for generating them:

rootfs/usr/lib/libc.so

rootfs/usr/lib/libpthread.so

Removing the path information from them allows LTIB to proceed:

GROUP ( libc.so.6 libc_nonshared.a  AS_NEEDED ( ld-linux.so.3 ) )

The busybox package is just the first one that has a problem with this, there are others.

0 Kudos
Reply

3,469 Views
EricNelson
Senior Contributor II

Thanks Jeremy,

This allowed my build to complete.

I looked on a 10.10 LTIB installation and found that the references in libc.so and libpthread.so didn't contain any path information, so I did the same:

~/ltib_201103/rootfs/usr/lib$ cat libc.so
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( libc.so.6 libc_nonshared.a  AS_NEEDED ( ld-linux.so.3 ) )
0 Kudos
Reply

3,469 Views
EricNelson
Senior Contributor II

I traced this down to this snippet in dist/lfs/base_libs:

# remove absolute paths from text search files (if they exist)
perl -w -e '
    @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV;
    exit(0) unless @ARGV;
    $^I = ".bak";
    while(<>) {
        s,[\S/]+/,,g if m,^GROUP,;
        print;
    }
    ' $RPM_BUILD_ROOT/%{pfx}/lib/libc.so \
      $RPM_BUILD_ROOT/%{pfx}/lib/libpthread.so \
      $RPM_BUILD_ROOT/%{pfx}/usr/lib/libc.so \
      $RPM_BUILD_ROOT/%{pfx}/usr/lib/libpthread.so

I'm not very strong in perl, but I believe the first two lines prevent the body of this in-line perl program from removing the absolute paths for both libc.so and libpthread.so:

    @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV;
    exit(0) unless @ARGV;

3,469 Views
johnw
Contributor III

I did verify that if you replace libc.so and libpthread.so with softlinks to ../../lib/libc.so.6 and ../../lib/libpthread.so.0, respectively, the build does NOT work. So, I wouldn’t try that.

0 Kudos
Reply

3,469 Views
johnw
Contributor III

Wow. I would never have found that. Thanks! Talk about something that is completely wrong. I wonder if putting softlinks to ../../lib/libc.so.6 and the libpthread would work as well?

John

0 Kudos
Reply