<p dir="ltr">Admittedly bikeshedding here but not a fan of "patch" - what do other programs use?</p>
<p dir="ltr">-eric</p>
<div class="gmail_quote">On Feb 21, 2014 1:11 PM, "Tom Stellard" <<a href="mailto:thomas.stellard@amd.com">thomas.stellard@amd.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The shared library generated by autoconf will now be called<br>
libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)$(VERSION_SUFFIX).so<br>
and a symlink named<br>
libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_SUFFIX).so will<br>
also be created in the install directory.<br>
---<br>
 CMakeLists.txt                  |  4 ++-<br>
 <a href="http://Makefile.config.in" target="_blank">Makefile.config.in</a>              |  2 ++<br>
 Makefile.rules                  | 11 +++++++-<br>
 autoconf/<a href="http://configure.ac" target="_blank">configure.ac</a>           | 19 +++++++++++---<br>
 configure                       | 56 +++++++++++++++++++++++++----------------<br>
 include/llvm/Config/<a href="http://config.h.in" target="_blank">config.h.in</a> |  3 +++<br>
 tools/llvm-shlib/Makefile       |  2 ++<br>
 7 files changed, 70 insertions(+), 27 deletions(-)<br>
<br>
diff --git a/CMakeLists.txt b/CMakeLists.txt<br>
index cd8b363..dc20b1f 100644<br>
--- a/CMakeLists.txt<br>
+++ b/CMakeLists.txt<br>
@@ -12,9 +12,10 @@ set(CMAKE_MODULE_PATH<br>
<br>
 set(LLVM_VERSION_MAJOR 3)<br>
 set(LLVM_VERSION_MINOR 5)<br>
+set(LLVM_VERSION_PATCH 0)<br>
<br>
 if (NOT PACKAGE_VERSION)<br>
-  set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn")<br>
+  set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}svn")<br>
 endif()<br>
<br>
 option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)<br>
@@ -45,6 +46,7 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY "LLVM")<br>
 set(CPACK_PACKAGE_VENDOR "LLVM")<br>
 set(CPACK_PACKAGE_VERSION_MAJOR ${LLVM_VERSION_MAJOR})<br>
 set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_MINOR})<br>
+set(CPACK_PACKAGE_VERSION_PATCH ${LLVM_VERSION_PATCH})<br>
 set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})<br>
 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.TXT")<br>
 if(WIN32 AND NOT UNIX)<br>
diff --git a/<a href="http://Makefile.config.in" target="_blank">Makefile.config.in</a> b/<a href="http://Makefile.config.in" target="_blank">Makefile.config.in</a><br>
index 7633be2..8a46b42 100644<br>
--- a/<a href="http://Makefile.config.in" target="_blank">Makefile.config.in</a><br>
+++ b/<a href="http://Makefile.config.in" target="_blank">Makefile.config.in</a><br>
@@ -17,6 +17,8 @@ LLVMPackageName   := @PACKAGE_TARNAME@<br>
 LLVMVersion       := @PACKAGE_VERSION@<br>
 LLVM_VERSION_MAJOR := @LLVM_VERSION_MAJOR@<br>
 LLVM_VERSION_MINOR := @LLVM_VERSION_MINOR@<br>
+LLVM_VERSION_PATCH := @LLVM_VERSION_PATCH@<br>
+LLVM_VERSION_SUFFIX := @LLVM_VERSION_SUFFIX@<br>
 LLVM_CONFIGTIME   := @LLVM_CONFIGTIME@<br>
<br>
 ###########################################################################<br>
diff --git a/Makefile.rules b/Makefile.rules<br>
index d668b23..770c0a6 100644<br>
--- a/Makefile.rules<br>
+++ b/Makefile.rules<br>
@@ -783,7 +783,7 @@ else<br>
 Ranlib        = ranlib<br>
 endif<br>
<br>
-AliasTool     = ln -s<br>
+AliasTool     = ln -sf<br>
<br>
 #----------------------------------------------------------<br>
 # Get the list of source files and compute object file<br>
@@ -1147,15 +1147,19 @@ ifdef LIBRARYNAME<br>
<br>
 # Make sure there isn't any extraneous whitespace on the LIBRARYNAME option<br>
 LIBRARYNAME := $(strip $(LIBRARYNAME))<br>
+LIBRARYALIASNAME := $(strip $(LIBRARYALIASNAME))<br>
 ifdef LOADABLE_MODULE<br>
 BaseLibName.A  := $(LIBRARYNAME).a<br>
 BaseLibName.SO := $(LIBRARYNAME)$(SHLIBEXT)<br>
+BaseAliasName.SO := $(LIBRARYALIASNAME)$(SHLIBEXT)<br>
 else<br>
 BaseLibName.A  := lib$(LIBRARYNAME).a<br>
 BaseLibName.SO := $(SharedPrefix)$(LIBRARYNAME)$(SHLIBEXT)<br>
+BaseAliasName.SO := $(SharedPrefix)$(LIBRARYALIASNAME)$(SHLIBEXT)<br>
 endif<br>
 LibName.A  := $(LibDir)/$(BaseLibName.A)<br>
 LibName.SO := $(SharedLibDir)/$(BaseLibName.SO)<br>
+AliasName.SO := $(SharedLibDir)/$(BaseAliasName.SO)<br>
 LibName.O  := $(LibDir)/$(LIBRARYNAME).o<br>
<br>
 #---------------------------------------------------------<br>
@@ -1209,12 +1213,17 @@ else<br>
 DestSharedLibDir := $(DESTDIR)$(PROJ_libdir)<br>
 endif<br>
 DestSharedLib := $(DestSharedLibDir)/$(BaseLibName.SO)<br>
+DestSharedAlias := $(DestSharedLibDir)/$(BaseAliasName.SO)<br>
<br>
 install-local:: $(DestSharedLib)<br>
<br>
 $(DestSharedLib): $(LibName.SO) $(DestSharedLibDir)<br>
        $(Echo) Installing $(BuildMode) Shared Library $(DestSharedLib)<br>
        $(Verb) $(INSTALL) $(LibName.SO) $(DestSharedLib)<br>
+ifdef SHARED_ALIAS<br>
+       $(Echo) Creating alias from $(DestSharedLib) to $(DestSharedAlias)<br>
+       $(Verb) $(AliasTool) $(DestSharedLib) $(DestSharedAlias)<br>
+endif<br>
<br>
 uninstall-local::<br>
        $(Echo) Uninstalling $(BuildMode) Shared Library $(DestSharedLib)<br>
diff --git a/autoconf/<a href="http://configure.ac" target="_blank">configure.ac</a> b/autoconf/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
index f376e03..4685649 100644<br>
--- a/autoconf/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
+++ b/autoconf/<a href="http://configure.ac" target="_blank">configure.ac</a><br>
@@ -31,9 +31,22 @@ dnl===<br>
 dnl===-----------------------------------------------------------------------===<br>
 dnl Initialize autoconf and define the package name, version number and<br>
 dnl address for reporting bugs.<br>
-AC_INIT([LLVM],[3.5svn],[<a href="http://llvm.org/bugs/" target="_blank">http://llvm.org/bugs/</a>])<br>
-LLVM_DEFINE_SUBST([LLVM_VERSION_MAJOR], [3], [Major version of the LLVM API])<br>
-LLVM_DEFINE_SUBST([LLVM_VERSION_MINOR], [5], [Minor version of the LLVM API])<br>
+<br>
+AC_INIT([LLVM],[3.5.0svn],[<a href="http://llvm.org/bugs/" target="_blank">http://llvm.org/bugs/</a>])<br>
+<br>
+LLVM_VERSION_MAJOR=3<br>
+LLVM_VERSION_MINOR=5<br>
+LLVM_VERSION_PATCH=0<br>
+LLVM_VERSION_SUFFIX=svn<br>
+<br>
+AC_DEFINE_UNQUOTED([LLVM_VERSION_MAJOR], $LLVM_VERSION_MAJOR, [Major version of the LLVM API])<br>
+AC_DEFINE_UNQUOTED([LLVM_VERSION_MINOR], $LLVM_VERSION_MINOR, [Minor version of the LLVM API])<br>
+AC_DEFINE_UNQUOTED([LLVM_VERSION_PATCH], $LLVM_VERSION_PATCH, [Patch version of the LLVM API])<br>
+<br>
+AC_SUBST([LLVM_VERSION_MAJOR])<br>
+AC_SUBST([LLVM_VERSION_MINOR])<br>
+AC_SUBST([LLVM_VERSION_PATCH])<br>
+AC_SUBST([LLVM_VERSION_SUFFIX])<br>
<br>
 dnl Provide a copyright substitution and ensure the copyright notice is included<br>
 dnl in the output of --version option of the generated configure script.<br>
diff --git a/configure b/configure<br>
index 46d557d..d23311f 100755<br>
--- a/configure<br>
+++ b/configure<br>
@@ -1,6 +1,6 @@<br>
 #! /bin/sh<br>
 # Guess values for system-dependent variables and create Makefiles.<br>
-# Generated by GNU Autoconf 2.60 for LLVM 3.5svn.<br>
+# Generated by GNU Autoconf 2.60 for LLVM 3.5.0svn.<br>
 #<br>
 # Report bugs to <<a href="http://llvm.org/bugs/" target="_blank">http://llvm.org/bugs/</a>>.<br>
 #<br>
@@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}<br>
 # Identity of this package.<br>
 PACKAGE_NAME='LLVM'<br>
 PACKAGE_TARNAME='llvm'<br>
-PACKAGE_VERSION='3.5svn'<br>
-PACKAGE_STRING='LLVM 3.5svn'<br>
+PACKAGE_VERSION='3.5.0svn'<br>
+PACKAGE_STRING='LLVM 3.5.0svn'<br>
 PACKAGE_BUGREPORT='<a href="http://llvm.org/bugs/" target="_blank">http://llvm.org/bugs/</a>'<br>
<br>
 ac_unique_file="lib/IR/Module.cpp"<br>
@@ -641,6 +641,8 @@ host_alias<br>
 target_alias<br>
 LLVM_VERSION_MAJOR<br>
 LLVM_VERSION_MINOR<br>
+LLVM_VERSION_PATCH<br>
+LLVM_VERSION_SUFFIX<br>
 LLVM_COPYRIGHT<br>
 CC<br>
 CFLAGS<br>
@@ -1330,7 +1332,7 @@ if test "$ac_init_help" = "long"; then<br>
   # Omit some internal or obsolete options to make the list less imposing.<br>
   # This message is too long to be a string in the A/UX 3.1 sh.<br>
   cat <<_ACEOF<br>
-\`configure' configures LLVM 3.5svn to adapt to many kinds of systems.<br>
+\`configure' configures LLVM 3.5.0svn to adapt to many kinds of systems.<br>
<br>
 Usage: $0 [OPTION]... [VAR=VALUE]...<br>
<br>
@@ -1396,7 +1398,7 @@ fi<br>
<br>
 if test -n "$ac_init_help"; then<br>
   case $ac_init_help in<br>
-     short | recursive ) echo "Configuration of LLVM 3.5svn:";;<br>
+     short | recursive ) echo "Configuration of LLVM 3.5.0svn:";;<br>
    esac<br>
   cat <<\_ACEOF<br>
<br>
@@ -1568,7 +1570,7 @@ fi<br>
 test -n "$ac_init_help" && exit $ac_status<br>
 if $ac_init_version; then<br>
   cat <<\_ACEOF<br>
-LLVM configure 3.5svn<br>
+LLVM configure 3.5.0svn<br>
 generated by GNU Autoconf 2.60<br>
<br>
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,<br>
@@ -1584,7 +1586,7 @@ cat >config.log <<_ACEOF<br>
 This file contains any messages produced by compilers while<br>
 running configure, to aid debugging if configure makes a mistake.<br>
<br>
-It was created by LLVM $as_me 3.5svn, which was<br>
+It was created by LLVM $as_me 3.5.0svn, which was<br>
 generated by GNU Autoconf 2.60.  Invocation command line was<br>
<br>
   $ $0 $@<br>
@@ -1938,21 +1940,29 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu<br>
<br>
<br>
<br>
+LLVM_VERSION_MAJOR=3<br>
+LLVM_VERSION_MINOR=5<br>
+LLVM_VERSION_PATCH=0<br>
+LLVM_VERSION_SUFFIX=svn<br>
<br>
-cat >>confdefs.h <<\_ACEOF<br>
-#define LLVM_VERSION_MAJOR 3<br>
-_ACEOF<br>
<br>
-LLVM_VERSION_MAJOR='3'<br>
+cat >>confdefs.h <<_ACEOF<br>
+#define LLVM_VERSION_MAJOR $LLVM_VERSION_MAJOR<br>
+_ACEOF<br>
<br>
<br>
+cat >>confdefs.h <<_ACEOF<br>
+#define LLVM_VERSION_MINOR $LLVM_VERSION_MINOR<br>
+_ACEOF<br>
<br>
<br>
-cat >>confdefs.h <<\_ACEOF<br>
-#define LLVM_VERSION_MINOR 5<br>
+cat >>confdefs.h <<_ACEOF<br>
+#define LLVM_VERSION_PATCH $LLVM_VERSION_PATCH<br>
 _ACEOF<br>
<br>
-LLVM_VERSION_MINOR='5'<br>
+<br>
+<br>
+<br>
<br>
<br>
<br>
@@ -10710,7 +10720,7 @@ else<br>
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2<br>
   lt_status=$lt_dlunknown<br>
   cat > conftest.$ac_ext <<EOF<br>
-#line 10713 "configure"<br>
+#line 10723 "configure"<br>
 #include "confdefs.h"<br>
<br>
 #if HAVE_DLFCN_H<br>
@@ -23073,7 +23083,7 @@ exec 6>&1<br>
 # report actual input values of CONFIG_FILES etc. instead of their<br>
 # values after options handling.<br>
 ac_log="<br>
-This file was extended by LLVM $as_me 3.5svn, which was<br>
+This file was extended by LLVM $as_me 3.5.0svn, which was<br>
 generated by GNU Autoconf 2.60.  Invocation command line was<br>
<br>
   CONFIG_FILES    = $CONFIG_FILES<br>
@@ -23126,7 +23136,7 @@ Report bugs to <<a href="mailto:bug-autoconf@gnu.org">bug-autoconf@gnu.org</a>>."<br>
 _ACEOF<br>
 cat >>$CONFIG_STATUS <<_ACEOF<br>
 ac_cs_version="\\<br>
-LLVM config.status 3.5svn<br>
+LLVM config.status 3.5.0svn<br>
 configured by $0, generated by GNU Autoconf 2.60,<br>
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"<br>
<br>
@@ -23366,6 +23376,8 @@ host_alias!$host_alias$ac_delim<br>
 target_alias!$target_alias$ac_delim<br>
 LLVM_VERSION_MAJOR!$LLVM_VERSION_MAJOR$ac_delim<br>
 LLVM_VERSION_MINOR!$LLVM_VERSION_MINOR$ac_delim<br>
+LLVM_VERSION_PATCH!$LLVM_VERSION_PATCH$ac_delim<br>
+LLVM_VERSION_SUFFIX!$LLVM_VERSION_SUFFIX$ac_delim<br>
 LLVM_COPYRIGHT!$LLVM_COPYRIGHT$ac_delim<br>
 CC!$CC$ac_delim<br>
 CFLAGS!$CFLAGS$ac_delim<br>
@@ -23422,8 +23434,6 @@ ENABLE_EXPENSIVE_CHECKS!$ENABLE_EXPENSIVE_CHECKS$ac_delim<br>
 EXPENSIVE_CHECKS!$EXPENSIVE_CHECKS$ac_delim<br>
 DEBUG_RUNTIME!$DEBUG_RUNTIME$ac_delim<br>
 DEBUG_SYMBOLS!$DEBUG_SYMBOLS$ac_delim<br>
-KEEP_SYMBOLS!$KEEP_SYMBOLS$ac_delim<br>
-JIT!$JIT$ac_delim<br>
 _ACEOF<br>
<br>
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then<br>
@@ -23465,6 +23475,8 @@ _ACEOF<br>
 ac_delim='%!_!# '<br>
 for ac_last_try in false false false false false :; do<br>
   cat >conf$$subs.sed <<_ACEOF<br>
+KEEP_SYMBOLS!$KEEP_SYMBOLS$ac_delim<br>
+JIT!$JIT$ac_delim<br>
 TARGET_HAS_JIT!$TARGET_HAS_JIT$ac_delim<br>
 TARGETS_WITH_JIT!$TARGETS_WITH_JIT$ac_delim<br>
 ENABLE_DOCS!$ENABLE_DOCS$ac_delim<br>
@@ -23560,8 +23572,6 @@ SHLIBPATH_VAR!$SHLIBPATH_VAR$ac_delim<br>
 LLVM_PREFIX!$LLVM_PREFIX$ac_delim<br>
 LLVM_BINDIR!$LLVM_BINDIR$ac_delim<br>
 LLVM_DATADIR!$LLVM_DATADIR$ac_delim<br>
-LLVM_DOCSDIR!$LLVM_DOCSDIR$ac_delim<br>
-LLVM_ETCDIR!$LLVM_ETCDIR$ac_delim<br>
 _ACEOF<br>
<br>
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then<br>
@@ -23603,6 +23613,8 @@ _ACEOF<br>
 ac_delim='%!_!# '<br>
 for ac_last_try in false false false false false :; do<br>
   cat >conf$$subs.sed <<_ACEOF<br>
+LLVM_DOCSDIR!$LLVM_DOCSDIR$ac_delim<br>
+LLVM_ETCDIR!$LLVM_ETCDIR$ac_delim<br>
 LLVM_INCLUDEDIR!$LLVM_INCLUDEDIR$ac_delim<br>
 LLVM_INFODIR!$LLVM_INFODIR$ac_delim<br>
 LLVM_MANDIR!$LLVM_MANDIR$ac_delim<br>
@@ -23618,7 +23630,7 @@ LIBOBJS!$LIBOBJS$ac_delim<br>
 LTLIBOBJS!$LTLIBOBJS$ac_delim<br>
 _ACEOF<br>
<br>
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 13; then<br>
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 15; then<br>
     break<br>
   elif $ac_last_try; then<br>
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5<br>
diff --git a/include/llvm/Config/<a href="http://config.h.in" target="_blank">config.h.in</a> b/include/llvm/Config/<a href="http://config.h.in" target="_blank">config.h.in</a><br>
index 8565696..069f1a4 100644<br>
--- a/include/llvm/Config/<a href="http://config.h.in" target="_blank">config.h.in</a><br>
+++ b/include/llvm/Config/<a href="http://config.h.in" target="_blank">config.h.in</a><br>
@@ -642,6 +642,9 @@<br>
 /* Minor version of the LLVM API */<br>
 #undef LLVM_VERSION_MINOR<br>
<br>
+/* Patch version of the LLVM API */<br>
+#undef LLVM_VERSION_PATCH<br>
+<br>
 /* Define if the OS needs help to load dependent libraries for dlopen(). */<br>
 #undef LTDL_DLOPEN_DEPLIBS<br>
<br>
diff --git a/tools/llvm-shlib/Makefile b/tools/llvm-shlib/Makefile<br>
index 317da51..cd26a24 100644<br>
--- a/tools/llvm-shlib/Makefile<br>
+++ b/tools/llvm-shlib/Makefile<br>
@@ -10,10 +10,12 @@<br>
 LEVEL := ../..<br>
<br>
 LIBRARYNAME = LLVM-$(LLVMVersion)<br>
+LIBRARYALIASNAME = LLVM-$(LLVM_VERSION_MAJOR).$(LLVM_VERSION_MINOR)$(LLVM_VERSION_SUFFIX)<br>
<br>
 NO_BUILD_ARCHIVE := 1<br>
 LINK_LIBS_IN_SHARED := 1<br>
 SHARED_LIBRARY := 1<br>
+SHARED_ALIAS := 1<br>
<br>
 include $(LEVEL)/Makefile.config<br>
<br>
--<br>
1.8.1.4<br>
<br>
<br>
</blockquote></div>