Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Apr 2010 19:58:32 +0000 (UTC)
From:      Roman Divacky <rdivacky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r206562 - in projects/clangbsd: . contrib/llvm/tools/clang/include/clang/Driver contrib/llvm/tools/clang/lib/Driver
Message-ID:  <201004131958.o3DJwXrW049451@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rdivacky
Date: Tue Apr 13 19:58:32 2010
New Revision: 206562
URL: http://svn.freebsd.org/changeset/base/206562

Log:
  Revert r199767 with changes. Change the -B argument in WMAKE
  for CC/CXX to -B${WORLDTMP}/usr/lib/ and link into that directory
  as/ld. Change -B for lib32 build to -B${LIB32TMP}/usr/lib32.
  
  Both clang and gcc can build all of clangbsd again. Any compiler
  that supports -isystem/-B should work as well without the TOOLS_PREFIX
  hacks we did to our intree gcc.

Modified:
  projects/clangbsd/Makefile.inc1
  projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h
  projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp
  projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp

Modified: projects/clangbsd/Makefile.inc1
==============================================================================
--- projects/clangbsd/Makefile.inc1	Tue Apr 13 19:43:16 2010	(r206561)
+++ projects/clangbsd/Makefile.inc1	Tue Apr 13 19:58:32 2010	(r206562)
@@ -262,8 +262,8 @@ WMAKEENV=	${CROSSENV} \
 		VERSION="${VERSION}" \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${TMPPATH} \
-		CC="${CC} ${MMINTRIN_CLANG} -isystem ${WORLDTMP}/usr/include -B${WORLDTMP}/usr/bin/ -L${WORLDTMP}/usr/lib/" \
-		CXX="${CXX} ${MMINTRIN_CLANG} -isystem ${WORLDTMP}/usr/include -isystem ${WORLDTMP}/include/c++/4.2 -isystem ${WORLDTMP}/include/c++/4.2/backward -B${WORLDTMP}/usr/bin/ -L${WORLDTMP}/usr/lib/"
+		CC="${CC} ${MMINTRIN_CLANG} -isystem ${WORLDTMP}/usr/include -B${WORLDTMP}/usr/lib/ -L${WORLDTMP}/usr/lib/" \
+		CXX="${CXX} ${MMINTRIN_CLANG} -isystem ${WORLDTMP}/usr/include -isystem ${WORLDTMP}/include/c++/4.2 -isystem ${WORLDTMP}/include/c++/4.2/backward -B${WORLDTMP}/usr/lib/ -L${WORLDTMP}/usr/lib/"
 
 .if ${MK_CDDL} == "no" || defined(NO_CTF)
 WMAKEENV+=	NO_CTF=1
@@ -282,7 +282,7 @@ LIB32CPUFLAGS=	-march=${TARGET_CPUTYPE}
 LIB32FLAGS=	-m32 ${LIB32CPUFLAGS} -mfancy-math-387 -DCOMPAT_32BIT \
 		-isystem ${LIB32TMP}/usr/include/ \
 		-L${LIB32TMP}/usr/lib32 \
-		-B${LIB32TMP}
+		-B${LIB32TMP}/usr/lib32
 
 # Yes, the flags are redundant.
 LIB32WMAKEENV=	MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
@@ -435,6 +435,8 @@ everything:
 	@echo "--------------------------------------------------------------"
 	@echo ">>> stage 4.4: building everything"
 	@echo "--------------------------------------------------------------"
+	ln -sf ${WORLDTMP}/usr/bin/as ${WORLDTMP}/usr/lib/as
+	ln -sf ${WORLDTMP}/usr/bin/ld ${WORLDTMP}/usr/lib/ld
 	${_+_}cd ${.CURDIR}; ${WMAKE} par-all
 .if ${TARGET_ARCH} == "amd64"
 build32:
@@ -448,10 +450,10 @@ build32:
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
 	    -p ${LIB32TMP}/usr/include >/dev/null
 	mkdir -p ${WORLDTMP}
-	# relink /usr/bin/{as,ld} to the lib32 tmp so the -B can pick 'em up
+	# relink /usr/bin/{as,ld} to the lib32 tmp so the -B can pick up
 	# the /usr/bin/ld and /usr/bin/as
-	ln -sf ${WORLDTMP}/usr/bin/as ${LIB32TMP}/as
-	ln -sf ${WORLDTMP}/usr/bin/ld ${LIB32TMP}/ld
+	ln -sf ${WORLDTMP}/usr/bin/as ${LIB32TMP}/usr/lib32/as
+	ln -sf ${WORLDTMP}/usr/bin/ld ${LIB32TMP}/usr/lib32/ld
 	ln -sf ${.CURDIR}/sys ${WORLDTMP}
 .if ${MK_KERBEROS} != "no"
 .for _t in obj depend all

Modified: projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h	Tue Apr 13 19:43:16 2010	(r206561)
+++ projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h	Tue Apr 13 19:58:32 2010	(r206562)
@@ -28,7 +28,6 @@ namespace driver {
 /// ToolChain - Access to tools for a single platform.
 class ToolChain {
 public:
-  bool Lib32;
   typedef llvm::SmallVector<std::string, 4> path_list;
 
 private:

Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp	Tue Apr 13 19:43:16 2010	(r206561)
+++ projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp	Tue Apr 13 19:58:32 2010	(r206562)
@@ -420,7 +420,6 @@ ToolChain *FreeBSDHostInfo::CreateToolCh
     TCTriple.setArchName(ArchName);
 
     TC = new toolchains::FreeBSD(*this, TCTriple, Lib32);
-    TC->Lib32 = Lib32;
   }
 
   return TC;

Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp	Tue Apr 13 19:43:16 2010	(r206561)
+++ projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp	Tue Apr 13 19:58:32 2010	(r206562)
@@ -2734,7 +2734,6 @@ void freebsd::Link::ConstructJob(Compila
                                  const char *LinkingOutput) const {
   const Driver &D = getToolChain().getDriver();
   ArgStringList CmdArgs;
-  std::string LibPrefix("/usr/lib/");
 
   if (Args.hasArg(options::OPT_static)) {
     CmdArgs.push_back("-Bstatic");
@@ -2753,8 +2752,6 @@ void freebsd::Link::ConstructJob(Compila
   if (getToolChain().getArchName() == "i386") {
     CmdArgs.push_back("-m");
     CmdArgs.push_back("elf_i386_fbsd");
-    if (getToolChain().Lib32)
-      LibPrefix = "/usr/lib32/";
   }
 
   if (Output.isPipe()) {
@@ -2770,12 +2767,12 @@ void freebsd::Link::ConstructJob(Compila
   if (!Args.hasArg(options::OPT_nostdlib) &&
       !Args.hasArg(options::OPT_nostartfiles)) {
     if (!Args.hasArg(options::OPT_shared)) {
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crt1.o").c_str())));
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crti.o").c_str())));
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crtbegin.o").c_str())));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crt1.o")));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crti.o")));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtbegin.o")));
     } else {
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crti.o").c_str())));
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crtbeginS.o").c_str())));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crti.o")));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtbeginS.o")));
     }
   }
 
@@ -2834,10 +2831,10 @@ void freebsd::Link::ConstructJob(Compila
   if (!Args.hasArg(options::OPT_nostdlib) &&
       !Args.hasArg(options::OPT_nostartfiles)) {
     if (!Args.hasArg(options::OPT_shared))
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crtend.o").c_str())));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtend.o")));
     else
-      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crtendS.o").c_str())));
-    CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, (LibPrefix + "crtn.o").c_str())));
+      CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtendS.o")));
+    CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath(C, "crtn.o")));
   }
 
   const char *Exec =



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004131958.o3DJwXrW049451>