libtool version mismatch


autif khan <autif.mlist@...>
 

I have been working on writing a recipe for mono. I have successfully
written one for lbgdiplus and am making headway with mono.

Mono comes with libtool version 2.2.6, Yocto uses 2.4

After do_configure(), when do_complie() is being executed, I am
getting the following error for the following command:

Command:
/bin/sh ./libtool --mode=compile i586-poky-linux-gcc -m32
-march=core2 -msse3 -mtune=generic -mfpmath=sse
--sysroot=/home/autif/data2/nosync/dev/yocto/kokosdk/tmp/sysroots/crownbay
-DPACKAGE_NAME=\"libgc-mono\" -DPACKAGE_TARNAME=\"libgc-mono\"
-DPACKAGE_VERSION=\"6.6\" -DPACKAGE_STRING=\"libgc-mono\ 6.6\"
-DPACKAGE_BUGREPORT=\"Hans_Boehm@...\" -DPACKAGE_URL=\"\"
-DGC_LINUX_THREADS=1 -D_REENTRANT=1 -DPARALLEL_MARK=1
-DTHREAD_LOCAL_ALLOC=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1
-DLT_OBJDIR=\".libs/\" -DSILENT=1 -DNO_SIGNALS=1
-DNO_EXECUTE_PERMISSION=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1
-DATOMIC_UNCOLLECTABLE=1 -D_IN_LIBGC=1 -I./.. -I./.. -I./include
-DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP
-O2 -pipe -g -feliminate-unused-debug-types -g
-mno-tls-direct-seg-refs -MT allchblk.lo -MD -MP -MF
.deps/allchblk.Tpo -c -o allchblk.lo allchblk.c

Error:
| libtool: Version mismatch error. This is libtool 2.4, but the
| libtool: definition of this LT_INIT comes from libtool 2.2.6.
| libtool: You should recreate aclocal.m4 with macros from libtool 2.4
| libtool: and run autoconf again.
| make[3]: *** [allchblk.lo] Error 63

Here is how LT_INIT is defined in aclocal.m4:
# LT_INIT([OPTIONS])
# ------------------
AC_DEFUN([LT_INIT],
[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
AC_BEFORE([$0], [LT_LANG])dnl
AC_BEFORE([$0], [LT_OUTPUT])dnl
AC_BEFORE([$0], [LTDL_INIT])dnl
m4_require([_LT_CHECK_BUILDDIR])dnl

dnl Autoconf doesn't catch unexpanded LT_ macros by default:
m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
dnl unless we require an AC_DEFUNed macro:
AC_REQUIRE([LTOPTIONS_VERSION])dnl
AC_REQUIRE([LTSUGAR_VERSION])dnl
AC_REQUIRE([LTVERSION_VERSION])dnl
AC_REQUIRE([LTOBSOLETE_VERSION])dnl
m4_require([_LT_PROG_LTMAIN])dnl

dnl Parse OPTIONS
_LT_SET_OPTIONS([$0], [$1])

# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ltmain"

# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl

_LT_SETUP

# Only expand once:
m4_define([LT_INIT])
])# LT_INIT

What changes should be made to the auto tools files to fix this?

Thanks!

Autif


Khem Raj
 

On Tue, Jan 24, 2012 at 7:18 AM, autif khan <autif.mlist@...> wrote:
Error:
| libtool: Version mismatch error.  This is libtool 2.4, but the
| libtool: definition of this LT_INIT comes from libtool 2.2.6.
| libtool: You should recreate aclocal.m4 with macros from libtool 2.4
| libtool: and run autoconf again.
| make[3]: *** [allchblk.lo] Error 63
this says it all and we do that regeneration automatically for recipes
which inherit autotools
you need to post your recipes for someone to look at what you are doing


autif khan <autif.mlist@...>
 

On Tue, Jan 24, 2012 at 10:44 AM, Khem Raj <raj.khem@...> wrote:
On Tue, Jan 24, 2012 at 7:18 AM, autif khan <autif.mlist@...> wrote:
Error:
| libtool: Version mismatch error.  This is libtool 2.4, but the
| libtool: definition of this LT_INIT comes from libtool 2.2.6.
| libtool: You should recreate aclocal.m4 with macros from libtool 2.4
| libtool: and run autoconf again.
| make[3]: *** [allchblk.lo] Error 63
this says it all and we do that regeneration automatically for recipes
which inherit autotools
It seems that way, but I can not explain the following behavior.

1) I can grep autoreconf in log.do_configure
2) When I add do_configure_prepend() {autoreconf --force --install
-Wcorss} this issue seems to go away.

So, I am confused, but not lost - as it seems like this updated recipe
seems to work.

I have attached logs for before and after the changes specified in 2 (above)

you need to post your recipes for someone to look at what you are doing
Still a work in progress:

SUMMARY = "An Open Source implementation of the Microsoft's .NET Framework"
DESCRIPTION = "This is part of the Mono project - http://mono-project.com"
HOMEPAGE = "http://mono-project.com"
BUGTRACKER = "http://bugzilla.xamarin.com/"
SECTION = "devel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=58d09de7e50ecdbafcf97e7eb5d0c34a"

SRC_URI = "http://download.mono-project.com/sources/mono/mono-${PV}.tar.bz2 \
file://mono-2.6.7/mono/mini/Makefile.in.1.diff \
file://mono-2.6.7/mono/profiler/Makefile.in.2.diff"

inherit autotools pkgconfig

DEPENDS =+ "libgdiplus"

PR = "r0"

SRC_URI[md5sum] = "cc8b7bf061bd11fbd0fcc1c95eb79d34"
SRC_URI[sha256sum] =
"ae21a997d72e2fb8ea88644c87ab52471e9c97117b937e205ea1835b5a028ce4"
EXTRA_OECONF += "--disable-mcs-build mono_cv_uscore=no
--with-tls=pthread --with-sigaltstack=no"

do_configure_prepend() {
autoreconf -Wcross --verbose --install --force || bbnote "mono
failed to autoreconf"
}

do_compile_prepend() {
ln -s i586-poky-linux-libtool libtool
}


Khem Raj
 

On Tue, Jan 24, 2012 at 8:13 AM, autif khan <autif.mlist@...> wrote:

do_configure_prepend() {
   autoreconf -Wcross --verbose --install --force || bbnote "mono
failed to autoreconf"
}

do_compile_prepend() {
   ln -s i586-poky-linux-libtool libtool
}
get rid of above these are not needed when recipes inherit autotools
see if you need to copy over some of m4 macros that is what you
need to do in do_configure_prepend if needed.


autif khan <autif.mlist@...>
 

On Tue, Jan 24, 2012 at 12:09 PM, Khem Raj <raj.khem@...> wrote:
On Tue, Jan 24, 2012 at 8:13 AM, autif khan <autif.mlist@...> wrote:

do_configure_prepend() {
   autoreconf -Wcross --verbose --install --force || bbnote "mono
failed to autoreconf"
}

do_compile_prepend() {
   ln -s i586-poky-linux-libtool libtool
}
get rid of above these are not needed when recipes inherit autotools
see if you need to copy over some of m4 macros that is what you
need to do in do_configure_prepend if needed.
Can you point me to an existing recipe that already does something
similar? I am not sure what I am looking for.

Thanks for all the help!

Autif


Kevin Baker <kbaker@...>
 

On Tue, Jan 24, 2012 at 11:46 AM, autif khan <autif.mlist@...> wrote:

Can you point me to an existing recipe that already does something
similar? I am not sure what I am looking for.

Thanks for all the help!


Cross-compiling mono is messy, at least judging from the existing recipe from OE-classic:

http://cgit.openembedded.org/openembedded/tree/recipes/mono/README

I remember using this recipe with OE-classic and getting a working version compiled for ARM, and the resulting binaries/libraries seemed to work fine for test programs. You may want to look there for some ideas.

Kevin