Hi Lionel,

No I don't think it's the same.

--disable-static just tell a build not to create the .a (static libraries) that may be part of the build. The would be needed by something else wanting to statically link with that package's library.

The .la files are use to allow you to test shared libraries before you install them, they let you link to a non-install set of libraries. This is fine for self-hosted development, but will not work when you are cross compiling. In fact it's worse than that, it will make the cross compilation pick up host libraries (which will be the wrong architecture).

To try to clarify, if you installed the .la files on the target image, they could be used if you natively compiled on a board running that target image. However due to the way LTIB works, it stages the target image in rootfs and libraries under rootfs/usr/lib are used during cross compilation. That is why you need to remove these as any .la files under rootfs will poison your cross compilation.

Regards, Stuart

On 25/01/15 19:22, Leonard Pimentel wrote:

Stuart,

I apologize for the delay. Thank you for the clarification. Is the option flag "---disable-static" effectively the same as removing the *.la and *.a files using the "rm --f $RPM_BUILD_ROOT/mypackage/*.la" command?

Regards,

Leo

*From:*Stuart Hughes [mailto:[email protected]]
*Sent:* Sunday, January 18, 2015 1:23 PM
*To:* Leonard Pimentel
*Cc:* [email protected]
*Subject:* Re: [SOLVED] Cross-compilation errors preventing build

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 <[email protected] <mailto:[email protected]>> 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.

    http://lists.gnu.org/archive/html/ltib/2010-04/msg00127.html

    *From:*Leonard Pimentel
    *Sent:*Wednesday, January 14, 2015 11:08 AM
    *To:*'[email protected] <mailto:[email protected]>'
    *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/

    /<image001.png>/
    <http://www.linkedin.com/pub/leonard-pimentel/3/a0a/796>


_______________________________________________
LTIB home page: http://ltib.org

Ltib mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/ltib

Reply via email to