all: improve compiler-rt compilation

A few changes to make sure compiler-rt is correctly compiled (and
doesn't include host headers, for example).

This improves support for AVR, but it still doesn't work. Compiler-rt
itself doesn't really work for AVR either.
Этот коммит содержится в:
Ayke van Laethem 2018-10-07 21:29:45 +02:00
родитель 73709922b2
коммит 1bbdab41d2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED
3 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -161,7 +161,7 @@ func loadBuiltins(target string) (path string, err error) {
objpath := filepath.Join(dir, name+".o")
objs = append(objs, objpath)
srcpath := filepath.Join(builtinsDir, name+".c")
cmd := exec.Command(commands["clang"], "-c", "-Oz", "-g", "-Werror", "-Wall", "-std=c11", "--target="+target, "-o", objpath, srcpath)
cmd := exec.Command(commands["clang"], "-c", "-Oz", "-g", "-Werror", "-Wall", "-std=c11", "-fshort-enums", "-nostdlibinc", "--target="+target, "-o", objpath, srcpath)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Dir = dir

Просмотреть файл

@ -53,3 +53,11 @@ func abort() {
func align(ptr uintptr) uintptr {
return (ptr + 3) &^ 3
}
// Implement memset for compiler-rt.
//go:export memset
func memset(ptr unsafe.Pointer, c byte, size uintptr) {
for i := uintptr(0); i < size; i++ {
*(*byte)(unsafe.Pointer(uintptr(ptr) + i)) = c
}
}

Просмотреть файл

@ -12,7 +12,6 @@
"-Wl,--gc-sections",
"-fno-exceptions", "-fno-unwind-tables",
"-ffunction-sections", "-fdata-sections",
"-fno-short-enums",
"-Os",
"-DNRF51",
"-Ilib/CMSIS/CMSIS/Include",