newlib: T110: fix libc Hakefile to prefer machine-specific impls over generic.
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Wed, 3 Jun 2015 09:37:56 +0000 (11:37 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Wed, 3 Jun 2015 09:38:04 +0000 (11:38 +0200)
This implements the proposed solution 3 in T110 which is the simplest to do
right now. However we should consider implementing one of the other solutions
at a later date.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>

lib/newlib/newlib/libc/Hakefile
lib/newlib/newlib/libc/machine/Hakefile

index 0aa119c..f78e7fb 100644 (file)
@@ -1,17 +1,4 @@
 if Config.libc == "newlib" then
-let
-    arch_srcs "x86_64"  = [ "machine/x86_64/" ++ x | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
-    arch_srcs "k1om"    = [ "machine/x86_64/" ++ x | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
-    arch_srcs "x86_32"  = [ "machine/i386/" ++ x   | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
-    arch_srcs "scc"     = [ "machine/i386/" ++ x   | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
-    arch_srcs "armv5"   = [ "machine/arm/setjmp.S" ]
-    arch_srcs "arm11mp" = [ "machine/arm/setjmp.S" ]
-    arch_srcs "xscale"  = [ "machine/arm/setjmp.S" ]
-    arch_srcs "armv7"   = [ "machine/arm/setjmp.S" ]
-    arch_srcs "armv7-m" = [ "machine/arm/setjmp.S" ]
-    arch_srcs "armv8"   = [ "machine/arm/setjmp.S" ]
-    arch_srcs  x        = error ("Unknown architecture for newlib: " ++ x)
-in
 [ build library {
   target = "newc",
   addCFlags  = Config.newlibAddCFlags,
@@ -20,7 +7,8 @@ in
                  "-Wimplicit-function-declaration",
                  "-Werror"],
   addLibraries = [
-      "ctype"
+      "machine" -- put this first, so machine-specific symbols are found before generic ones
+    , "ctype"
     , "search"
     , "string"
     , "argz"
@@ -33,7 +21,6 @@ in
     , "errno"
     , "misc"
     , "sys"
-    , "machine" -- put this last, so machine-specific symbols overwrite generic ones
     ],
   architectures = [arch]
 } | arch <- allArchitectures ]
index f3ef642..03010d8 100644 (file)
@@ -1,7 +1,7 @@
 if Config.libc == "newlib" then
 let
     arch_srcs "x86_64"  = [ "x86_64/" ++ x | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
-    arch_srcs "k1om"  = [ "x86_64/" ++ x | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
+    arch_srcs "k1om"    = [ "x86_64/" ++ x | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
     arch_srcs "x86_32"  = [ "i386/" ++ x   | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
     arch_srcs "scc"     = [ "i386/" ++ x   | x <- ["setjmp.S", "memcpy.S", "memset.S"]]
     arch_srcs "armv5"   = [ "arm/setjmp.S" ]
@@ -9,7 +9,7 @@ let
     arch_srcs "xscale"  = [ "arm/setjmp.S" ]
     arch_srcs "armv7"   = [ "arm/setjmp.S" ]
     arch_srcs "armv7-m" = [ "arm/setjmp.S" ]
-    arch_srcs "armv8"   = [ "arm/setjmp.S" ]
+    arch_srcs "armv8"   = [ "aarch64/setjmp.S" ]
     arch_srcs  x        = error ("Unknown architecture for newlib: " ++ x)
 in
 [ build library {