aboutsummaryrefslogtreecommitdiff
path: root/tools/gccld/gccld.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gccld/gccld.cpp')
-rw-r--r--tools/gccld/gccld.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index 5d1a35f8a8..b8b3587938 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -52,6 +52,10 @@ Libraries("l", cl::desc("Specify libraries to link to"), cl::Prefix,
static cl::opt<bool>
Strip("s", cl::desc("Strip symbol info from executable"));
+static cl::opt<bool>
+NoInternalize("disable-internalize",
+ cl::desc("Do not mark all symbols as internal"));
+
// FileExists - Return true if the specified string is an openable file...
static inline bool FileExists(const std::string &FN) {
@@ -153,10 +157,13 @@ int main(int argc, char **argv) {
//
Passes.add(createFunctionResolvingPass());
- // Now that composite has been compiled, scan through the module, looking for
- // a main function. If main is defined, mark all other functions internal.
- //
- Passes.add(createInternalizePass());
+ if (!NoInternalize) {
+ // Now that composite has been compiled, scan through the module, looking
+ // for a main function. If main is defined, mark all other functions
+ // internal.
+ //
+ Passes.add(createInternalizePass());
+ }
// Now that we have optimized the program, discard unreachable functions...
//