Upgrading Libtool | |
=============================================================================== | |
If you are in the mood to upgrade libtool, you must do the following: | |
1. Get the new version of libtool and put it in <SRC> | |
2. configure/build/install libtool with --prefix=<PFX> | |
3. Copy <SRC>/ltdl.m4 to llvm/autoconf/m4 | |
4. Copy <PFX>/share/aclocal/libtool.m4 to llvm/autoconf/m4/libtool.m4 | |
5. Copy <PFX>/share/libtool/ltmain.sh to llvm/autoconf/ltmain.sh | |
6. Copy <PFX>/share/libtool/libltdl/ltdl.c to llvm/lib/System | |
7. Copy <PFX>/share/libtool/libltdl/ltdl.h to llvm/lib/System | |
8. Edit the ltdl.h file to #include "llvm/Config/config.h" at the very top. You | |
might also need to resolve some compiler warnings (typically about | |
comparison of signed vs. unsigned values). But, you won't find out about | |
those until you build LLVM (step 13). | |
9. Edit the llvm/autoconf/m4/libtool.m4 file so that: | |
a) in AC_PROB_LIBTOOL macro, the value of LIBTOOL is set to | |
$(top_builddir)/mklib, not $(top_builddir)/libtool | |
b) in AC_LIBTOOL_SETUP macro, the variable default_ofile is set to | |
"mklib" instead of "libtool" | |
c) s/AC_ENABLE_SHARED_DEFAULT/enable_shared_default/g | |
d) s/AC_ENABLE_STATIC_DEFAULT/enable_static_default/g | |
e) s/AC_ENABLE_FAST_INSTALL_DEFAULT/enable_fast_install_default/g | |
10. Run "autoupdate libtool.m4 ltdl.m4" in the llvm/autoconf/m4 directory. | |
This should correctly update the macro definitions in the libtool m4 | |
files to match the version of autoconf that LLVM uses. This converts | |
AC_HELP_STRING to AS_HELP_STRING and AC_TRY_LINK to AC_LINK_IFELSE, amongst | |
other things. You may need to manually adjust the files. | |
11. Run AutoRegen.sh to get the new macros into configure script | |
12. If there are any warnings from AutoRegen.sh, go to step 9. | |
13. Rebuild LLVM, making sure it reconfigures | |
14. Test the JIT which uses libltdl | |
15. If it all works, only THEN commit the changes. | |
Upgrading autoconf | |
=============================================================================== | |
If you are in the mood to upgrade autoconf, you should: | |
1. Consider not upgrading. | |
2. No really, this is a hassle, you don't want to do it. | |
3. Get the new version of autoconf and put it in <SRC> | |
4. configure/build/install autoconf with --prefix=<PFX> | |
5. Run autoupdate on all the m4 macros in llvm/autoconf/m4 | |
6. Run autoupdate on llvm/autoconf/configure.ac | |
7. Regenerate configure script with AutoRegen.sh | |
8. If there are any warnings from AutoRegen.sh, fix them and go to step 7. | |
9. Test, test, test. |