Menu

#203 LiVES 2.4.0 linker error

uncategorised
closed
Salsaman
None
1
2015-05-08
2015-05-07
Vascom
No

I can't compile lives in Fedora 22.

widget-helper.o: In function lives_label_set_halignment': /home/vascom/rpmbuild/BUILD/lives-2.4.0/src/widget-helper.c:2407: undefined reference togtk_label_set_y_align'
saveplay.o: In function save_file': /home/vascom/rpmbuild/BUILD/lives-2.4.0/src/saveplay.c:1493: undefined reference tocount_virtual_frames'
/home/vascom/rpmbuild/BUILD/lives-2.4.0/src/saveplay.c:1657: undefined reference to count_virtual_frames' /home/vascom/rpmbuild/BUILD/lives-2.4.0/src/saveplay.c:1737: undefined reference tocount_virtual_frames'
saveplay.o: In function backup_file': /home/vascom/rpmbuild/BUILD/lives-2.4.0/src/saveplay.c:3939: undefined reference tocount_virtual_frames'
callbacks.o: In function on_paste_as_new_activate': /home/vascom/rpmbuild/BUILD/lives-2.4.0/src/callbacks.c:2640: undefined reference tocount_virtual_frames'
callbacks.o:/home/vascom/rpmbuild/BUILD/lives-2.4.0/src/callbacks.c:5489: more undefined references to `count_virtual_frames' follow
collect2: error: ld returned 1 exit status
Makefile:895: recipe for target 'lives-exe' failed

Full log http://paste.fedoraproject.org/219326/30985323/

Discussion

  • Salsaman

    Salsaman - 2015-05-07

    Hi. The first error affects only gtk+ >= 3.16.0, and can be fixed with a trivial patch:

    https://sourceforge.net/p/lives/code/2240/tree//trunk/src/widget-helper.c?diff=505487e4bfc09e4ced4d35a9:2239

    Regarding the second problem (not finding count_virtual_frames) I have no idea what is causing this, since the function is defined in cvirtual.c which I see from the log is being compiled. Perhaps there is some kind of compiler issue as it appears that this error is unique to your setup.

     
  • Vascom

    Vascom - 2015-05-07

    Thanks.

    My compiler:
    $ LANG=C g++ -v
    Using built-in specs.
    COLLECT_GCC=/usr/bin/g++
    COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/5.1.1/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-default-libstdcxx-abi=c++98 --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 5.1.1 20150422 (Red Hat 5.1.1-1) (GCC)

    Please make patch to compile with GCC 5.

     
  • Salsaman

    Salsaman - 2015-05-07

    Hi. I am with gcc 4.7.3. I will not be able to update to gcc 5 until it gets released for ubuntu 14.04

    I am afraid you will have to investigate the problem yourself. As I said, it seems to be unique to your setup.

    Sorry I cannot help more at this time.

     
  • Vascom

    Vascom - 2015-05-07

    I was advised remove LIVES_INLINE from src/cvirtual.c
    And it works.

    Now I can't install it:

    make install DESTDIR=/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64
    Making install in libOSC
    make[1]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC'
    Making install in .
    make[2]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC'
    make[3]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC'
    /usr/bin/mkdir -p '/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64'
    /bin/sh ../libtool --mode=install /usr/bin/install -c libOSC.la '/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64'
    libtool: install: /usr/bin/install -c .libs/libOSC.so.0.0.0 /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC.so.0.0.0
    libtool: install: (cd /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64 && { ln -s -f libOSC.so.0.0.0 libOSC.so.0 || { rm -f libOSC.so.0 && ln -s libOSC.so.0.0.0 libOSC.so.0; }; })
    libtool: install: (cd /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64 && { ln -s -f libOSC.so.0.0.0 libOSC.so || { rm -f libOSC.so && ln -s libOSC.so.0.0.0 libOSC.so; }; })
    libtool: install: /usr/bin/install -c .libs/libOSC.lai /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC.la
    libtool: install: /usr/bin/install -c .libs/libOSC.a /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC.a
    libtool: install: chmod 644 /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC.a
    libtool: install: ranlib /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC.a
    libtool: install: warning: remember to run libtool --finish /usr/lib64' make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC' make[2]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC' Making install in client make[2]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/client' make[3]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/client' /usr/bin/mkdir -p '/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64' /bin/sh ../../libtool --mode=install /usr/bin/install -c libOSC_client.la '/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64' libtool: install: /usr/bin/install -c .libs/libOSC_client.so.0.0.0 /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC_client.so.0.0.0 libtool: install: (cd /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64 && { ln -s -f libOSC_client.so.0.0.0 libOSC_client.so.0 || { rm -f libOSC_client.so.0 && ln -s libOSC_client.so.0.0.0 libOSC_client.so.0; }; }) libtool: install: (cd /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64 && { ln -s -f libOSC_client.so.0.0.0 libOSC_client.so || { rm -f libOSC_client.so && ln -s libOSC_client.so.0.0.0 libOSC_client.so; }; }) libtool: install: /usr/bin/install -c .libs/libOSC_client.lai /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC_client.la libtool: install: /usr/bin/install -c .libs/libOSC_client.a /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC_client.a libtool: install: chmod 644 /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC_client.a libtool: install: ranlib /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/lib64/libOSC_client.a libtool: install: warning: remember to runlibtool --finish /usr/lib64'
    make[3]: Nothing to be done for 'install-data-am'.
    make[3]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/client'
    make[2]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/client'
    Making install in sendOSC
    make[2]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/sendOSC'
    make[3]: Entering directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/sendOSC'
    cp -f sendOSC "/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/bin" && chmod a+rx "/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/bin/sendOSC"
    chmod: cannot access '/home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/bin/sendOSC': Not a directory
    Makefile:818: recipe for target 'install-exec-local' failed
    make[3]: *** [install-exec-local] Error 1
    make[3]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/sendOSC'
    Makefile:700: recipe for target 'install-am' failed
    make[2]: *** [install-am] Error 2
    make[2]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC/sendOSC'
    Makefile:754: recipe for target 'install-recursive' failed
    make[1]: *** [install-recursive] Error 1
    make[1]: Leaving directory '/home/vascom/rpmbuild/BUILD/lives-2.4.0/libOSC'
    Makefile:625: recipe for target 'install-recursive' failed
    make: *** [install-recursive] Error 1

    I see that /home/vascom/rpmbuild/BUILDROOT/lives-2.4.0-1.fc22.R.x86_64/usr/bin created as a file.

     
  • Salsaman

    Salsaman - 2015-05-07

    Can you try to remove the installdirs: target from libOSC/sendOSC/Makefile.am

    Then rerun automake and configure.

     
  • Vascom

    Vascom - 2015-05-07

    I have warning after run automake:
    $ automake
    configure.ac:102: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
    configure.ac:102: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
    configure.ac:102: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.

    And it is not helped. The same error.

     
  • Salsaman

    Salsaman - 2015-05-07

    Warning can be ignored.

    Try this in the Makefile.am:

    ...

    sendOSC_PROGRAMS = sendOSC
    
    
    
    install-exec-local:
        $(MKDIR_P) "$(DESTDIR)$(bindir)"
        cp -f $(sendOSC) "$(DESTDIR)$(bindir)" && chmod a+rx "$(DESTDIR)$(bindir)/$(sendOSC)"
    
     

    Last edit: Salsaman 2015-05-07
  • Vascom

    Vascom - 2015-05-08

    Now it works fine.

     
  • Salsaman

    Salsaman - 2015-05-08

    Great thanks. I'll check all the changes into subversion.

     
  • Salsaman

    Salsaman - 2015-05-08
    • status: open --> closed
    • assigned_to: Salsaman
     
  • Salsaman

    Salsaman - 2015-05-08

    Closing as fixed.

     

Log in to post a comment.

MongoDB Logo MongoDB