summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@csail.mit.edu>2016-01-02 07:50:03 -0500
committerGravatar Adam Chlipala <adamc@csail.mit.edu>2016-01-02 07:50:03 -0500
commit2db6f2680dc91cd32b7c76e354bc39fe5192c857 (patch)
treeed4744430468c99054572d3dfa04e68a3575816b
parent36be1e34ee331c59847200e01bde8f860ed7e510 (diff)
parent4489a6b433f38be0b20e5a69fd4a52ef81ef731b (diff)
Merge pull request #10 from eranmeir/pthread_linker_flags
Prevent pthread cflags options from being passed to linker
-rw-r--r--src/compiler.sml8
-rw-r--r--src/main.mlton.sml8
-rw-r--r--src/settings.sig3
-rw-r--r--src/settings.sml4
4 files changed, 16 insertions, 7 deletions
diff --git a/src/compiler.sml b/src/compiler.sml
index bf7491e5..e2dc168e 100644
--- a/src/compiler.sml
+++ b/src/compiler.sml
@@ -878,7 +878,7 @@ fun parseUrp' accLibs fname =
| "jsFile" =>
(Settings.setFilePath thisPath;
Settings.addJsFile arg)
-
+
| _ => ErrorMsg.error ("Unrecognized command '" ^ cmd ^ "'");
read ()
end
@@ -1503,7 +1503,9 @@ fun compileC {cname, oname, ename, libs, profile, debug, linker, link = link'} =
let
val proto = Settings.currentProtocol ()
- val lib = if Settings.getStaticLinking () then
+ val lib = if Settings.getBootLinking () then
+ !Settings.configLib ^ "/" ^ #linkStatic proto ^ " " ^ !Settings.configLib ^ "/liburweb.a"
+ else if Settings.getStaticLinking () then
" -static " ^ !Settings.configLib ^ "/" ^ #linkStatic proto ^ " " ^ !Settings.configLib ^ "/liburweb.a"
else
"-L" ^ !Settings.configLib ^ " " ^ #linkDynamic proto ^ " -lurweb"
@@ -1518,7 +1520,7 @@ fun compileC {cname, oname, ename, libs, profile, debug, linker, link = link'} =
^ " " ^ #compile proto
^ " -c " ^ escapeFilename cname ^ " -o " ^ escapeFilename oname
- val linker = Option.getOpt (linker, (Settings.getCCompiler ()) ^ " -Werror" ^ opt ^ " " ^ Config.ccArgs ^ " " ^ Config.pthreadCflags ^ " " ^ Config.pthreadLibs)
+ val linker = Option.getOpt (linker, (Settings.getCCompiler ()) ^ " -Werror" ^ opt ^ " " ^ Config.ccArgs ^ " " ^ Config.pthreadLibs)
val ssl = if Settings.getStaticLinking () then
Config.openssl ^ " -ldl -lz"
diff --git a/src/main.mlton.sml b/src/main.mlton.sml
index 67732b58..f595134f 100644
--- a/src/main.mlton.sml
+++ b/src/main.mlton.sml
@@ -16,7 +16,7 @@
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
@@ -64,7 +64,7 @@ fun oneRun args =
fun doArgs args =
case args of
[] => ()
- | "-version" :: rest =>
+ | "-version" :: rest =>
printVersion ()
| "-numeric-version" :: rest =>
printNumericVersion ()
@@ -151,7 +151,7 @@ fun oneRun args =
doArgs rest)
| "-boot" :: rest =>
(Compiler.enableBoot ();
- Settings.setStaticLinking true;
+ Settings.setBootLinking true;
doArgs rest)
| "-sigfile" :: name :: rest =>
(Settings.setSigFile (SOME name);
@@ -318,7 +318,7 @@ val () = case CommandLine.arguments () of
(* Redirect the daemon's output to the socket. *)
redirect Posix.FileSys.stdout;
redirect Posix.FileSys.stderr;
-
+
loop' ("", []);
Socket.close sock;
diff --git a/src/settings.sig b/src/settings.sig
index 732a31fa..c75f12a3 100644
--- a/src/settings.sig
+++ b/src/settings.sig
@@ -238,6 +238,9 @@ signature SETTINGS = sig
val setStaticLinking : bool -> unit
val getStaticLinking : unit -> bool
+ val setBootLinking : bool -> unit
+ val getBootLinking : unit -> bool
+
val setDeadlines : bool -> unit
val getDeadlines : unit -> bool
diff --git a/src/settings.sml b/src/settings.sml
index 94692a2e..38ea30fc 100644
--- a/src/settings.sml
+++ b/src/settings.sml
@@ -686,6 +686,10 @@ val staticLinking = ref false
fun setStaticLinking b = staticLinking := b
fun getStaticLinking () = !staticLinking
+val bootLinking = ref false
+fun setBootLinking b = bootLinking := b
+fun getBootLinking () = !bootLinking
+
val deadlines = ref false
fun setDeadlines b = deadlines := b
fun getDeadlines () = !deadlines