ltib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ltib] [SOLVED] Cross-compilation errors preventing build


From: Stuart Hughes
Subject: Re: [Ltib] [SOLVED] Cross-compilation errors preventing build
Date: Sun, 18 Jan 2015 18:22:55 +0000

Hi Leonard,

I’m not sure I completely follow, however it is essential that all the .la files are removed from the binary rpm file.

The reason is that the binary gets installed in the local project area on the host under rootfs/… any .la files under there will get picked up by later packages when cross compiling and will cause the compiler to try to link to libraries under /usr/lib /lib on the host, which is clearly not what you want.

Regards, Stuart

On 15 Jan 2015, at 18:22, Leonard Pimentel <address@hidden> wrote:

Stuart Hughes,
 
Thank you.  Several times the cross-compilation would interrupt with errors and I could not understand why the *.la file was important to the compilation.
 
It was unforeseen that an innocuous statement would create cross-compilation build and install problems.
 
find $RPM_BUILD_ROOT%{pfx}%{_prefix}/lib/ -name “*.la” | xargs rm -f
 
After removing the above statement, warnings such “file moved” and the error “no such file or directory found” were commonplace.
 
 
 
 
From: Leonard Pimentel 
Sent: Wednesday, January 14, 2015 11:08 AM
To: 'address@hidden'
Subject: Cross-compilation errors preventing build
 
General cross-compiling question
 
Are there two solutions (at minimum) to solve the following warning [file moved] and error [no such file]?  I am running into build errors.  Help is appreciated.
 
Error log snippet:
 
libtool: link: warning: library `/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rootfs/usr/lib/libgstvideo-0.10.la' was moved.
/bin/sed: can't read /usr/lib/libgstinterfaces-0.10.la: No such file or directory
libtool: link: `/usr/lib/libgstinterfaces-0.10.la' is not a valid libtool archive
make[3]: *** [libgstaudiofx.la] Error 1
make[3]: Leaving directory `/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rpm/BUILD/gst-plugins-good-0.10.25/gst/audiofx'
make[2]: *** [audiofx] Error 2
make[3]: Leaving directory `/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rpm/BUILD/gst-plugins-good-0.10.25/gst/debugutils'
make[2]: Leaving directory `/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rpm/BUILD/gst-plugins-good-0.10.25/gst'
make[1]: *** [all-recursive] Error 1
 
 
 
Snippets from spec file
 
%define pfx          /opt/freescale/rootfs/%{_target_cpu}
%define LOGICPD_DIR  /home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3
 
%Build
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%LOGICPD_FS/usr/lib/pkconfig
 
lt_cv_path_NM=nm \
./configure --prefix=%{_prefix} --host=$CFGHOST --build=%{_build} \
                --with-pkg-config-path=$PKG_CONFIG_PATH \
                CPPFLAGS=-I%LOGICPD_DIR/rootfs/usr/include/gstreamer-0.10/gst \
                LDFLAGS=-L%LOGICPD_DIR/rootfs/usr/lib \
 
%install
rm –rf $RPM_BUILD_ROOT
make install DESTDIR=${RPM_BUILD_ROOT}%{pfx}
 
 
 
The following comment from StackOverflow suggests setting the dependency_libs section. 
 
Have you looked inside the libfreetype.la file? Libtool .la files are just text files describing libraries. By default, they are commented. Search for the libdir and dependency_libs settings and check if they point to the right places.
 
How can this be accomplished either in the configuration statement or via a libtool –finish command?
 
Contents of two .la files.  Note the libdir is referenced the file system directory path under the cross-compilied target.
 
# libgstinterfaces-0.10.la - a libtool library file
# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
 
# The name that we can dlopen(3).
dlname='libgstinterfaces-0.10.so.0'
 
# Names of this library.
library_names='libgstinterfaces-0.10.so.0.21.0 libgstinterfaces-0.10.so.0 libgstinterfaces-0.10.so'
 
# The name of the static archive.
old_library='libgstinterfaces-0.10.a'
 
# Linker flags that can not go in dependency_libs.
inherited_linker_flags=' -pthread'
 
# Libraries that this one depends upon.
dependency_libs=' -L/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rootfs/usr/lib -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -lm'
 
# Names of additional weak libraries provided by this library
weak_library_names=''
 
# Version information for libgstinterfaces-0.10.
current=21
age=21
revision=0
 
# Is this an already installed library?
installed=yes
 
# Should we warn about portability when linking against -modules?
shouldnotlink=no
 
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
 
# Directory that this library needs to be installed in:
libdir='/usr/lib'
 
 
 
 
libgstaudio-0.10.la - a libtool library file
# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
 
# The name that we can dlopen(3).
dlname='libgstaudio-0.10.so.0'
 
# Names of this library.
library_names='libgstaudio-0.10.so.0.21.0 libgstaudio-0.10.so.0 libgstaudio-0.10.so'
 
# The name of the static archive.
old_library='libgstaudio-0.10.a'
 
# Linker flags that can not go in dependency_libs.
inherited_linker_flags=' -pthread'
 
# Libraries that this one depends upon.
dependency_libs=' -L/home/leo/logic/Logic_BSPs/Linux_3.0/1026167_LogicPD_Linux_BSP_2.4-3/rootfs/usr/lib -lgstbase-0.10 /usr/lib/libgstinterfaces-0.10.la -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -lm'
 
# Names of additional weak libraries provided by this library
weak_library_names=''
 
# Version information for libgstaudio-0.10.
current=21
age=21
revision=0
 
# Is this an already installed library?
installed=yes
 
# Should we warn about portability when linking against -modules?
shouldnotlink=no
 
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
 
# Directory that this library needs to be installed in:
libdir='/usr/lib'
 
 
 
Leonard Pimentel
CEO & CTO
Lotus Research, LLC.
Cell: (917) 834-7533


reply via email to

[Prev in Thread] Current Thread [Next in Thread]