From: Richard Diamond <wichard@vitalitystudios.com>
Date: Wed, 5 Aug 2015 20:03:26 +0000 (+0000)
Subject: Revert "Fix `llvm-config` to emit the linker flag for the combined shared object... 
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50f5c7d1cd78737924c85a47d868d77b9bb1bb17;p=llvm

Revert "Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components."

It seems I was wrong thinking `autoconf`/`make` only installed shared libraries if configured with `--enable-shared`, even if `--disable-static` is present. I'll re-address with a followup patch.

This reverts commit r243297 for causing PR#24154.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244108 91177308-0d34-0410-b5e6-96231b3b80d8
---

diff --git a/bindings/ocaml/Makefile.ocaml b/bindings/ocaml/Makefile.ocaml
index 22b96a298ef..1f65a7b8f90 100644
--- a/bindings/ocaml/Makefile.ocaml
+++ b/bindings/ocaml/Makefile.ocaml
@@ -277,8 +277,6 @@ uninstall-local:: uninstall-deplibs
 
 build-deplibs: $(OutputLibs)
 
-$(OcamlDir)/%.so: $(LibDir)/%.so
-	$(Verb) ln -sf $< $@
 $(OcamlDir)/%.a: $(LibDir)/%.a
 	$(Verb) ln -sf $< $@
 
diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
index 66f7a16a4ce..3f51f491a7a 100644
--- a/tools/llvm-config/BuildVariables.inc.in
+++ b/tools/llvm-config/BuildVariables.inc.in
@@ -26,5 +26,3 @@
 #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
 #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
 #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
-#define BUILD_SHARED_LIBS "@BUILD_SHARED_LIBS@"
-#define WAS_BUILT_WITH_CMAKE "@WAS_BUILT_WITH_CMAKE@"
diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
index 3d5c9e68e11..d2ef45a1681 100644
--- a/tools/llvm-config/CMakeLists.txt
+++ b/tools/llvm-config/CMakeLists.txt
@@ -20,7 +20,6 @@ set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_
 set(LLVM_LDFLAGS "${CMAKE_CXX_LINK_FLAGS}")
 set(LLVM_BUILDMODE ${CMAKE_BUILD_TYPE})
 set(LLVM_SYSTEM_LIBS ${SYSTEM_LIBS})
-set(WAS_BUILT_WITH_CMAKE "ON")
 string(REPLACE ";" " " LLVM_TARGETS_BUILT "${LLVM_TARGETS_TO_BUILD}")
 configure_file(${BUILDVARIABLES_SRCPATH} ${BUILDVARIABLES_OBJPATH} @ONLY)
 
diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile
index 11e5d338771..1ff8b6f0406 100644
--- a/tools/llvm-config/Makefile
+++ b/tools/llvm-config/Makefile
@@ -65,12 +65,6 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
 	  >> temp.sed
 	$(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \
 	  >> temp.sed
-	$(if $(filter-out $(ENABLE_SHARED),0),\
-	  $(Verb) $(ECHO) 's/@BUILD_SHARED_LIBS@/ON/',\
-	  $(Verb) $(ECHO) 's/@BUILD_SHARED_LIBS@/OFF/') \
-	  >> temp.sed
-	$(Verb) $(ECHO) 's/@WAS_BUILT_WITH_CMAKE@/OFF/' \
-	  >> temp.sed
 	$(Verb) $(SED) -f temp.sed < $< > $@
 	$(Verb) $(RM) temp.sed
 
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
index c007d71baf1..879b9ab0945 100644
--- a/tools/llvm-config/llvm-config.cpp
+++ b/tools/llvm-config/llvm-config.cpp
@@ -349,30 +349,6 @@ int main(int argc, char **argv) {
                              /*IncludeNonInstalled=*/IsInDevelopmentTree);
 
     if (PrintLibs || PrintLibNames || PrintLibFiles) {
-      // If LLVM was built as a shared library, there will be only one thing
-      // that users should link against.
-      const bool IsSharedLib = (std::strcmp(BUILD_SHARED_LIBS, "ON") == 0);
-      const bool WasBuiltWithCMake = (std::strcmp(WAS_BUILT_WITH_CMAKE, "ON") == 0);
-      // CMake correctly builds components as separate shared libraries, however
-      // autoconfig/make builds components a static libraries and then links
-      // them all together to form a single shared library. Thus, only when
-      // `WAS_BUILT_WITH_CMAKE` is `OFF` and `BUILD_SHARED_LIBS` is `ON` do we
-      // override `RequiredLibs` with the single library name.
-      if (IsSharedLib && !WasBuiltWithCMake) {
-        RequiredLibs.clear();
-        std::string Name = "libLLVM-" PACKAGE_VERSION;
-        const Triple HostTriple(LLVM_DEFAULT_TARGET_TRIPLE);
-        if (HostTriple.isOSWindows()) {
-          Name += ".dll";
-        } else if (HostTriple.isOSDarwin()) {
-          Name += ".dylib";
-        } else {
-          // default to linux' ext:
-          Name += ".so";
-        }
-        RequiredLibs.push_back(Name);
-      }
-
       for (unsigned i = 0, e = RequiredLibs.size(); i != e; ++i) {
         StringRef Lib = RequiredLibs[i];
         if (i)
@@ -384,23 +360,8 @@ int main(int argc, char **argv) {
           OS << ActiveLibDir << '/' << Lib;
         } else if (PrintLibs) {
           // If this is a typical library name, include it using -l.
-          if (Lib.startswith("lib")) {
-            size_t FromEnd = 0;
-            if (Lib.endswith(".a")) {
-              FromEnd = 2;
-            } else if (Lib.endswith(".so")) {
-              FromEnd = 3;
-            } else if (Lib.endswith(".dylib")) {
-              FromEnd = 6;
-            } else {
-              FromEnd = 0;
-            }
-
-            if (FromEnd != 0) {
-              OS << "-l" << Lib.slice(3, Lib.size() - FromEnd);
-            } else {
-              OS << "-l:" << Lib;
-            }
+          if (Lib.startswith("lib") && Lib.endswith(".a")) {
+            OS << "-l" << Lib.slice(3, Lib.size()-2);
             continue;
           }