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,
"-Wimplicit-function-declaration",
"-Werror"],
addLibraries = [
- "ctype"
+ "machine" -- put this first, so machine-specific symbols are found before generic ones
+ , "ctype"
, "search"
, "string"
, "argz"
, "errno"
, "misc"
, "sys"
- , "machine" -- put this last, so machine-specific symbols overwrite generic ones
],
architectures = [arch]
} | arch <- allArchitectures ]
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" ]
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 {