diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2003-12-11 00:24:36 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2003-12-11 00:24:36 +0000 |
commit | 27f7a71a252ba146b04a1610a3d1c05729b07012 (patch) | |
tree | b4c43c3e3267489f8b2bffecbce025f757529102 /lib/Target/CBackend | |
parent | dfa58498ae0f8f306dd0f86fd7f070cad0245c62 (diff) | |
download | external_llvm-27f7a71a252ba146b04a1610a3d1c05729b07012.zip external_llvm-27f7a71a252ba146b04a1610a3d1c05729b07012.tar.gz external_llvm-27f7a71a252ba146b04a1610a3d1c05729b07012.tar.bz2 |
Turn off "attribute weak" to pacify Mac OS X's system compiler, which prints a
warning whenever it sees it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10391 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CBackend')
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 29 | ||||
-rw-r--r-- | lib/Target/CBackend/Writer.cpp | 29 |
2 files changed, 50 insertions, 8 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 63a5ec8..3d73493 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -585,7 +585,28 @@ static void generateCompilerSpecificCode(std::ostream& Out) { // If we aren't being compiled with GCC, just drop these attributes. Out << "#ifndef __GNUC__ /* Can only support \"linkonce\" vars with GCC */\n" << "#define __attribute__(X)\n" - << "#endif\n"; + << "#endif\n\n"; + +#if 0 + // At some point, we should support "external weak" vs. "weak" linkages. + // On Mac OS X, "external weak" is spelled "__attribute__((weak_import))". + Out << "#if defined(__GNUC__) && defined(__APPLE_CC__)\n" + << "#define __EXTERNAL_WEAK__ __attribute__((weak_import))\n" + << "#elif defined(__GNUC__)\n" + << "#define __EXTERNAL_WEAK__ __attribute__((weak))\n" + << "#else\n" + << "#define __EXTERNAL_WEAK__\n" + << "#endif\n\n"; +#endif + + // For now, turn off the weak linkage attribute on Mac OS X. (See above.) + Out << "#if defined(__GNUC__) && defined(__APPLE_CC__)\n" + << "#define __ATTRIBUTE_WEAK__\n" + << "#elif defined(__GNUC__)\n" + << "#define __ATTRIBUTE_WEAK__ __attribute__((weak))\n" + << "#else\n" + << "#define __ATTRIBUTE_WEAK__\n" + << "#endif\n\n"; } // generateProcessorSpecificCode - This is where we add conditional compilation @@ -683,7 +704,7 @@ void CWriter::printModule(Module *M) { if ((I->hasInternalLinkage() || !MangledGlobals.count(I)) && !I->getIntrinsicID()) { printFunctionSignature(I, true); - if (I->hasWeakLinkage()) Out << " __attribute__((weak))"; + if (I->hasWeakLinkage()) Out << " __ATTRIBUTE_WEAK__"; Out << ";\n"; } } @@ -706,7 +727,7 @@ void CWriter::printModule(Module *M) { if (I->hasLinkOnceLinkage()) Out << " __attribute__((common))"; else if (I->hasWeakLinkage()) - Out << " __attribute__((weak))"; + Out << " __ATTRIBUTE_WEAK__"; Out << ";\n"; } } @@ -722,7 +743,7 @@ void CWriter::printModule(Module *M) { if (I->hasLinkOnceLinkage()) Out << " __attribute__((common))"; else if (I->hasWeakLinkage()) - Out << " __attribute__((weak))"; + Out << " __ATTRIBUTE_WEAK__"; // If the initializer is not null, emit the initializer. If it is null, // we try to avoid emitting large amounts of zeros. The problem with diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index 63a5ec8..3d73493 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.cpp @@ -585,7 +585,28 @@ static void generateCompilerSpecificCode(std::ostream& Out) { // If we aren't being compiled with GCC, just drop these attributes. Out << "#ifndef __GNUC__ /* Can only support \"linkonce\" vars with GCC */\n" << "#define __attribute__(X)\n" - << "#endif\n"; + << "#endif\n\n"; + +#if 0 + // At some point, we should support "external weak" vs. "weak" linkages. + // On Mac OS X, "external weak" is spelled "__attribute__((weak_import))". + Out << "#if defined(__GNUC__) && defined(__APPLE_CC__)\n" + << "#define __EXTERNAL_WEAK__ __attribute__((weak_import))\n" + << "#elif defined(__GNUC__)\n" + << "#define __EXTERNAL_WEAK__ __attribute__((weak))\n" + << "#else\n" + << "#define __EXTERNAL_WEAK__\n" + << "#endif\n\n"; +#endif + + // For now, turn off the weak linkage attribute on Mac OS X. (See above.) + Out << "#if defined(__GNUC__) && defined(__APPLE_CC__)\n" + << "#define __ATTRIBUTE_WEAK__\n" + << "#elif defined(__GNUC__)\n" + << "#define __ATTRIBUTE_WEAK__ __attribute__((weak))\n" + << "#else\n" + << "#define __ATTRIBUTE_WEAK__\n" + << "#endif\n\n"; } // generateProcessorSpecificCode - This is where we add conditional compilation @@ -683,7 +704,7 @@ void CWriter::printModule(Module *M) { if ((I->hasInternalLinkage() || !MangledGlobals.count(I)) && !I->getIntrinsicID()) { printFunctionSignature(I, true); - if (I->hasWeakLinkage()) Out << " __attribute__((weak))"; + if (I->hasWeakLinkage()) Out << " __ATTRIBUTE_WEAK__"; Out << ";\n"; } } @@ -706,7 +727,7 @@ void CWriter::printModule(Module *M) { if (I->hasLinkOnceLinkage()) Out << " __attribute__((common))"; else if (I->hasWeakLinkage()) - Out << " __attribute__((weak))"; + Out << " __ATTRIBUTE_WEAK__"; Out << ";\n"; } } @@ -722,7 +743,7 @@ void CWriter::printModule(Module *M) { if (I->hasLinkOnceLinkage()) Out << " __attribute__((common))"; else if (I->hasWeakLinkage()) - Out << " __attribute__((weak))"; + Out << " __ATTRIBUTE_WEAK__"; // If the initializer is not null, emit the initializer. If it is null, // we try to avoid emitting large amounts of zeros. The problem with |