Files
llgo/internal/crosscompile/compile/libc/newlibesp.go
Haolan 1d3ecb287a fix: export libc cflags for compiler-rt
fix: libc include dir

fix: xtensa internal src dir

fix: xtensa internal src dir

fix: ignore wasm target

fix: export libc cflags to global cflags

fix: rtlib libc include dir

fix: ignore some errors for libc

fix: don's search system path for libc

fix: adjust compiling options

ci: add libc

fix: libc cflags

fix: test path

fix: libc cflags

fix: libc cflags
2025-09-02 13:40:42 +08:00

2084 lines
110 KiB
Go

package libc
import (
"fmt"
"path/filepath"
"strings"
"github.com/goplus/llgo/internal/crosscompile/compile"
)
var _libcLDFlags = []string{
"-nostdlib",
"-ffunction-sections",
"-fdata-sections",
}
var _libcCCFlags = []string{
"-Oz",
"-fno-builtin",
// freestanding tells compiler this is a baremental project
"-ffreestanding",
}
const (
_newlibUrl = "https://github.com/goplus/newlib/archive/refs/tags/v0.2.0.tar.gz"
_archiveInternalSrcDir = "newlib-0.2.0"
)
func withDefaultCCFlags(ccflags []string) []string {
return append(ccflags, _libcCCFlags...)
}
func getNewlibESP32ConfigRISCV(baseDir, target string) *compile.CompileConfig {
libcDir := filepath.Join(baseDir, "newlib", "libc")
libcIncludeDir := []string{
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + filepath.Join(baseDir, "newlib"),
"-I" + libcDir,
}
return &compile.CompileConfig{
Url: _newlibUrl,
Name: "newlib-esp32",
LibcCFlags: libcIncludeDir,
ArchiveSrcDir: _archiveInternalSrcDir,
Groups: []compile.CompileGroup{
{
OutputFileName: fmt.Sprintf("libcrt0-%s.a", target),
Files: []string{
filepath.Join(baseDir, "libgloss", "riscv", "esp", "esp_board.c"),
filepath.Join(baseDir, "libgloss", "riscv", "esp", "syscalls.c"),
filepath.Join(baseDir, "libgloss", "riscv", "esp", "crt1-board.S"),
},
CFlags: []string{
"-DHAVE_CONFIG_H",
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + filepath.Join(baseDir, "libgloss"),
// TODO(MeteorsLiu): support riscv
"-I" + filepath.Join(baseDir, "libgloss", "riscv"),
"-I" + filepath.Join(baseDir, "libgloss", "riscv", "esp"),
},
LDFlags: _libcLDFlags,
CCFlags: _libcCCFlags,
},
{
OutputFileName: fmt.Sprintf("libgloss-%s.a", target),
Files: []string{
filepath.Join(baseDir, "libgloss", "libnosys", "chown.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "close.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "environ.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "errno.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "execve.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "fork.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "fstat.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getpid.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "gettod.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "isatty.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "kill.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "link.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "lseek.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "open.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "read.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "readlink.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "sbrk.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "stat.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "symlink.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "times.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "unlink.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "wait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "write.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getentropy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_exit.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getreent.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "time.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "fcntl.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "chdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "chmod.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "closedir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "dirfd.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "ftw.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getcwd.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "mkdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "nftw.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "opendir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pathconf.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "readdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "rewinddir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "scandir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "seekdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "telldir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "rename.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_pop.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_pop_restore.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_push.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_push_defer.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_atfork.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getdetachstate.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getguardsize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getinheritsched.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getschedpolicy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getscope.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getstack.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getstackaddr.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getstacksize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setdetachstate.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setguardsize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setinheritsched.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setschedpolicy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setscope.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setstack.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setstackaddr.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setstacksize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrier_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrier_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrier_wait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cancel.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_broadcast.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_clockwait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_signal.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_timedwait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_wait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_getclock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_setclock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_create.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_detach.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_equal.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_exit.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getattr_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getconcurrency.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getcpuclockid.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getname_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getspecific.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_join.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_key_create.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_key_delete.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_clocklock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_getprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_lock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_setprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_timedlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_trylock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_unlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_getprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_getprotocol.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_gettype.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_setprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_setprotocol.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_settype.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_once.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_clockrdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_clockwrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_rdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_timedrdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_timedwrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_tryrdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_trywrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_unlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_wrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_self.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setcancelstate.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setcanceltype.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setconcurrency.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setname_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setschedprio.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setspecific.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_lock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_trylock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_unlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_testcancel.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_yield.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_access.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chdir.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chmod.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chown.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_close.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_conv_stat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_execve.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_exit.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_faccessat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fork.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fstat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fstatat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_ftime.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getcwd.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getpid.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getreent.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_gettimeofday.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_isatty.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_kill.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_link.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_lseek.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_lstat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_open.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_openat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_read.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_sbrk.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_stat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_sysconf.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_times.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_unlink.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_utime.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_wait.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_write.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_access.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chdir.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chmod.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chown.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_close.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_conv_stat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_execve.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_exit.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_faccessat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fork.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fstat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fstatat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_ftime.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getcwd.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getpid.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getreent.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_gettimeofday.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_isatty.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_kill.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_link.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_lseek.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_lstat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_open.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_openat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_read.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_sbrk.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_stat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_sysconf.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_times.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_unlink.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_utime.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_wait.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_write.c"),
filepath.Join(baseDir, "libgloss", "riscv", "nanosleep.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chdir.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chmod.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_chown.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_execve.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_fork.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getcwd.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getpid.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_getreent.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_kill.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_utime.c"),
filepath.Join(baseDir, "libgloss", "riscv", "sys_wait.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_close.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_exit.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_fdtable.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_fstat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_ftime.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_isatty.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_link.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_lseek.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_open.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_read.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_sbrk.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_stat.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_stat_common.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_unlink.c"),
filepath.Join(baseDir, "libgloss", "riscv", "semihost-sys_write.c"),
},
CFlags: []string{
"-DHAVE_CONFIG_H",
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + libcDir,
"-I" + filepath.Join(libcDir, "riscv"),
"-I" + filepath.Join(baseDir, "libgloss"),
"-I" + filepath.Join(baseDir, "libgloss", "riscv"),
"-I" + filepath.Join(baseDir, "libgloss", "riscv", "esp"),
},
LDFlags: _libcLDFlags,
CCFlags: _libcCCFlags,
},
{
OutputFileName: fmt.Sprintf("libc-%s.a", target),
Files: []string{
filepath.Join(libcDir, "argz", "argz_add.c"),
filepath.Join(libcDir, "argz", "argz_add_sep.c"),
filepath.Join(libcDir, "argz", "argz_append.c"),
filepath.Join(libcDir, "argz", "argz_count.c"),
filepath.Join(libcDir, "argz", "argz_create.c"),
filepath.Join(libcDir, "argz", "argz_create_sep.c"),
filepath.Join(libcDir, "argz", "argz_delete.c"),
filepath.Join(libcDir, "argz", "argz_extract.c"),
filepath.Join(libcDir, "argz", "argz_insert.c"),
filepath.Join(libcDir, "argz", "argz_next.c"),
filepath.Join(libcDir, "argz", "argz_replace.c"),
filepath.Join(libcDir, "argz", "argz_stringify.c"),
filepath.Join(libcDir, "argz", "buf_findstr.c"),
filepath.Join(libcDir, "argz", "envz_entry.c"),
filepath.Join(libcDir, "argz", "envz_get.c"),
filepath.Join(libcDir, "argz", "envz_add.c"),
filepath.Join(libcDir, "argz", "envz_remove.c"),
filepath.Join(libcDir, "argz", "envz_merge.c"),
filepath.Join(libcDir, "argz", "envz_strip.c"),
filepath.Join(libcDir, "stdlib", "__adjust.c"),
filepath.Join(libcDir, "stdlib", "__atexit.c"),
filepath.Join(libcDir, "stdlib", "__call_atexit.c"),
filepath.Join(libcDir, "stdlib", "__exp10.c"),
filepath.Join(libcDir, "stdlib", "__ten_mu.c"),
filepath.Join(libcDir, "stdlib", "_Exit.c"),
filepath.Join(libcDir, "stdlib", "abort.c"),
filepath.Join(libcDir, "stdlib", "abs.c"),
filepath.Join(libcDir, "stdlib", "aligned_alloc.c"),
filepath.Join(libcDir, "stdlib", "assert.c"),
filepath.Join(libcDir, "stdlib", "atexit.c"),
filepath.Join(libcDir, "stdlib", "atof.c"),
filepath.Join(libcDir, "stdlib", "atoff.c"),
filepath.Join(libcDir, "stdlib", "atoi.c"),
filepath.Join(libcDir, "stdlib", "atol.c"),
filepath.Join(libcDir, "stdlib", "calloc.c"),
filepath.Join(libcDir, "stdlib", "callocr.c"),
filepath.Join(libcDir, "stdlib", "cfreer.c"),
filepath.Join(libcDir, "stdlib", "div.c"),
filepath.Join(libcDir, "stdlib", "dtoa.c"),
filepath.Join(libcDir, "stdlib", "dtoastub.c"),
filepath.Join(libcDir, "stdlib", "environ.c"),
filepath.Join(libcDir, "stdlib", "envlock.c"),
filepath.Join(libcDir, "stdlib", "eprintf.c"),
filepath.Join(libcDir, "stdlib", "exit.c"),
filepath.Join(libcDir, "stdlib", "freer.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-gethex.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-hexnan.c"),
filepath.Join(libcDir, "stdlib", "getenv.c"),
filepath.Join(libcDir, "stdlib", "getenv_r.c"),
filepath.Join(libcDir, "stdlib", "imaxabs.c"),
filepath.Join(libcDir, "stdlib", "imaxdiv.c"),
filepath.Join(libcDir, "stdlib", "itoa.c"),
filepath.Join(libcDir, "stdlib", "labs.c"),
filepath.Join(libcDir, "stdlib", "ldiv.c"),
filepath.Join(libcDir, "stdlib", "ldtoa.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-ldtoa.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-gdtoa.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-dmisc.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-gmisc.c"),
filepath.Join(libcDir, "stdlib", "mallinfor.c"),
filepath.Join(libcDir, "stdlib", "malloc.c"),
filepath.Join(libcDir, "stdlib", "mallocr.c"),
filepath.Join(libcDir, "stdlib", "mallstatsr.c"),
filepath.Join(libcDir, "stdlib", "mblen.c"),
filepath.Join(libcDir, "stdlib", "mblen_r.c"),
filepath.Join(libcDir, "stdlib", "mbstowcs.c"),
filepath.Join(libcDir, "stdlib", "mbstowcs_r.c"),
filepath.Join(libcDir, "stdlib", "mbtowc.c"),
filepath.Join(libcDir, "stdlib", "mbtowc_r.c"),
filepath.Join(libcDir, "stdlib", "mlock.c"),
filepath.Join(libcDir, "stdlib", "mprec.c"),
filepath.Join(libcDir, "stdlib", "msizer.c"),
filepath.Join(libcDir, "stdlib", "mstats.c"),
filepath.Join(libcDir, "stdlib", "on_exit_args.c"),
filepath.Join(libcDir, "stdlib", "quick_exit.c"),
filepath.Join(libcDir, "stdlib", "rand.c"),
filepath.Join(libcDir, "stdlib", "rand_r.c"),
filepath.Join(libcDir, "stdlib", "random.c"),
filepath.Join(libcDir, "stdlib", "realloc.c"),
filepath.Join(libcDir, "stdlib", "reallocarray.c"),
filepath.Join(libcDir, "stdlib", "reallocf.c"),
filepath.Join(libcDir, "stdlib", "reallocr.c"),
filepath.Join(libcDir, "stdlib", "sb_charsets.c"),
filepath.Join(libcDir, "stdlib", "strtod.c"),
filepath.Join(libcDir, "stdlib", "strtoimax.c"),
filepath.Join(libcDir, "stdlib", "strtol.c"),
filepath.Join(libcDir, "stdlib", "strtoul.c"),
filepath.Join(libcDir, "stdlib", "strtoumax.c"),
filepath.Join(libcDir, "stdlib", "utoa.c"),
filepath.Join(libcDir, "stdlib", "wcstod.c"),
filepath.Join(libcDir, "stdlib", "wcstoimax.c"),
filepath.Join(libcDir, "stdlib", "wcstol.c"),
filepath.Join(libcDir, "stdlib", "wcstoul.c"),
filepath.Join(libcDir, "stdlib", "wcstoumax.c"),
filepath.Join(libcDir, "stdlib", "wcstombs.c"),
filepath.Join(libcDir, "stdlib", "wcstombs_r.c"),
filepath.Join(libcDir, "stdlib", "wctomb.c"),
filepath.Join(libcDir, "stdlib", "wctomb_r.c"),
filepath.Join(libcDir, "stdlib", "strtodg.c"),
filepath.Join(libcDir, "stdlib", "strtold.c"),
filepath.Join(libcDir, "stdlib", "strtorx.c"),
filepath.Join(libcDir, "stdlib", "wcstold.c"),
filepath.Join(libcDir, "stdlib", "arc4random.c"),
filepath.Join(libcDir, "stdlib", "arc4random_uniform.c"),
filepath.Join(libcDir, "stdlib", "cxa_atexit.c"),
filepath.Join(libcDir, "stdlib", "cxa_finalize.c"),
filepath.Join(libcDir, "stdlib", "drand48.c"),
filepath.Join(libcDir, "stdlib", "ecvtbuf.c"),
filepath.Join(libcDir, "stdlib", "efgcvt.c"),
filepath.Join(libcDir, "stdlib", "erand48.c"),
filepath.Join(libcDir, "stdlib", "jrand48.c"),
filepath.Join(libcDir, "stdlib", "lcong48.c"),
filepath.Join(libcDir, "stdlib", "lrand48.c"),
filepath.Join(libcDir, "stdlib", "mrand48.c"),
filepath.Join(libcDir, "stdlib", "msize.c"),
filepath.Join(libcDir, "stdlib", "mtrim.c"),
filepath.Join(libcDir, "stdlib", "nrand48.c"),
filepath.Join(libcDir, "stdlib", "rand48.c"),
filepath.Join(libcDir, "stdlib", "seed48.c"),
filepath.Join(libcDir, "stdlib", "srand48.c"),
filepath.Join(libcDir, "stdlib", "strtoll.c"),
filepath.Join(libcDir, "stdlib", "strtoll_r.c"),
filepath.Join(libcDir, "stdlib", "strtoull.c"),
filepath.Join(libcDir, "stdlib", "strtoull_r.c"),
filepath.Join(libcDir, "stdlib", "wcstoll.c"),
filepath.Join(libcDir, "stdlib", "wcstoll_r.c"),
filepath.Join(libcDir, "stdlib", "wcstoull.c"),
filepath.Join(libcDir, "stdlib", "wcstoull_r.c"),
filepath.Join(libcDir, "stdlib", "atoll.c"),
filepath.Join(libcDir, "stdlib", "llabs.c"),
filepath.Join(libcDir, "stdlib", "lldiv.c"),
filepath.Join(libcDir, "stdlib", "a64l.c"),
filepath.Join(libcDir, "stdlib", "btowc.c"),
filepath.Join(libcDir, "stdlib", "getopt.c"),
filepath.Join(libcDir, "stdlib", "getsubopt.c"),
filepath.Join(libcDir, "stdlib", "l64a.c"),
filepath.Join(libcDir, "stdlib", "malign.c"),
filepath.Join(libcDir, "stdlib", "malignr.c"),
filepath.Join(libcDir, "stdlib", "malloptr.c"),
filepath.Join(libcDir, "stdlib", "mbrlen.c"),
filepath.Join(libcDir, "stdlib", "mbrtowc.c"),
filepath.Join(libcDir, "stdlib", "mbsinit.c"),
filepath.Join(libcDir, "stdlib", "mbsnrtowcs.c"),
filepath.Join(libcDir, "stdlib", "mbsrtowcs.c"),
filepath.Join(libcDir, "stdlib", "on_exit.c"),
filepath.Join(libcDir, "stdlib", "pvallocr.c"),
filepath.Join(libcDir, "stdlib", "valloc.c"),
filepath.Join(libcDir, "stdlib", "vallocr.c"),
filepath.Join(libcDir, "stdlib", "wcrtomb.c"),
filepath.Join(libcDir, "stdlib", "wcsnrtombs.c"),
filepath.Join(libcDir, "stdlib", "wcsrtombs.c"),
filepath.Join(libcDir, "stdlib", "wctob.c"),
filepath.Join(libcDir, "stdlib", "putenv.c"),
filepath.Join(libcDir, "stdlib", "putenv_r.c"),
filepath.Join(libcDir, "stdlib", "setenv.c"),
filepath.Join(libcDir, "stdlib", "setenv_r.c"),
filepath.Join(libcDir, "stdlib", "rpmatch.c"),
filepath.Join(libcDir, "stdlib", "system.c"),
filepath.Join(libcDir, "ctype", "ctype_.c"),
filepath.Join(libcDir, "ctype", "isalnum.c"),
filepath.Join(libcDir, "ctype", "isalpha.c"),
filepath.Join(libcDir, "ctype", "iscntrl.c"),
filepath.Join(libcDir, "ctype", "isdigit.c"),
filepath.Join(libcDir, "ctype", "islower.c"),
filepath.Join(libcDir, "ctype", "isupper.c"),
filepath.Join(libcDir, "ctype", "isprint.c"),
filepath.Join(libcDir, "ctype", "ispunct.c"),
filepath.Join(libcDir, "ctype", "isspace.c"),
filepath.Join(libcDir, "ctype", "isxdigit.c"),
filepath.Join(libcDir, "ctype", "tolower.c"),
filepath.Join(libcDir, "ctype", "toupper.c"),
filepath.Join(libcDir, "ctype", "categories.c"),
filepath.Join(libcDir, "ctype", "isalnum_l.c"),
filepath.Join(libcDir, "ctype", "isalpha_l.c"),
filepath.Join(libcDir, "ctype", "isascii.c"),
filepath.Join(libcDir, "ctype", "isascii_l.c"),
filepath.Join(libcDir, "ctype", "isblank.c"),
filepath.Join(libcDir, "ctype", "isblank_l.c"),
filepath.Join(libcDir, "ctype", "iscntrl_l.c"),
filepath.Join(libcDir, "ctype", "isdigit_l.c"),
filepath.Join(libcDir, "ctype", "islower_l.c"),
filepath.Join(libcDir, "ctype", "isupper_l.c"),
filepath.Join(libcDir, "ctype", "isprint_l.c"),
filepath.Join(libcDir, "ctype", "ispunct_l.c"),
filepath.Join(libcDir, "ctype", "isspace_l.c"),
filepath.Join(libcDir, "ctype", "iswalnum.c"),
filepath.Join(libcDir, "ctype", "iswalnum_l.c"),
filepath.Join(libcDir, "ctype", "iswalpha.c"),
filepath.Join(libcDir, "ctype", "iswalpha_l.c"),
filepath.Join(libcDir, "ctype", "iswblank.c"),
filepath.Join(libcDir, "ctype", "iswblank_l.c"),
filepath.Join(libcDir, "ctype", "iswcntrl.c"),
filepath.Join(libcDir, "ctype", "iswcntrl_l.c"),
filepath.Join(libcDir, "ctype", "iswctype.c"),
filepath.Join(libcDir, "ctype", "iswctype_l.c"),
filepath.Join(libcDir, "ctype", "iswdigit.c"),
filepath.Join(libcDir, "ctype", "iswdigit_l.c"),
filepath.Join(libcDir, "ctype", "iswgraph.c"),
filepath.Join(libcDir, "ctype", "iswgraph_l.c"),
filepath.Join(libcDir, "ctype", "iswlower.c"),
filepath.Join(libcDir, "ctype", "iswlower_l.c"),
filepath.Join(libcDir, "ctype", "iswprint.c"),
filepath.Join(libcDir, "ctype", "iswprint_l.c"),
filepath.Join(libcDir, "ctype", "iswpunct.c"),
filepath.Join(libcDir, "ctype", "iswpunct_l.c"),
filepath.Join(libcDir, "ctype", "iswspace.c"),
filepath.Join(libcDir, "ctype", "iswspace_l.c"),
filepath.Join(libcDir, "ctype", "iswupper.c"),
filepath.Join(libcDir, "ctype", "iswupper_l.c"),
filepath.Join(libcDir, "ctype", "iswxdigit.c"),
filepath.Join(libcDir, "ctype", "iswxdigit_l.c"),
filepath.Join(libcDir, "ctype", "isxdigit_l.c"),
filepath.Join(libcDir, "ctype", "jp2uc.c"),
filepath.Join(libcDir, "ctype", "toascii.c"),
filepath.Join(libcDir, "ctype", "toascii_l.c"),
filepath.Join(libcDir, "ctype", "tolower_l.c"),
filepath.Join(libcDir, "ctype", "toupper_l.c"),
filepath.Join(libcDir, "ctype", "towctrans.c"),
filepath.Join(libcDir, "ctype", "towctrans_l.c"),
filepath.Join(libcDir, "ctype", "towlower.c"),
filepath.Join(libcDir, "ctype", "towlower_l.c"),
filepath.Join(libcDir, "ctype", "towupper.c"),
filepath.Join(libcDir, "ctype", "towupper_l.c"),
filepath.Join(libcDir, "ctype", "wctrans.c"),
filepath.Join(libcDir, "ctype", "wctrans_l.c"),
filepath.Join(libcDir, "ctype", "wctype.c"),
filepath.Join(libcDir, "ctype", "wctype_l.c"),
filepath.Join(libcDir, "search", "bsearch.c"),
filepath.Join(libcDir, "search", "ndbm.c"),
filepath.Join(libcDir, "search", "qsort.c"),
filepath.Join(libcDir, "search", "hash.c"),
filepath.Join(libcDir, "search", "hash_bigkey.c"),
filepath.Join(libcDir, "search", "hash_buf.c"),
filepath.Join(libcDir, "search", "hash_func.c"),
filepath.Join(libcDir, "search", "hash_log2.c"),
filepath.Join(libcDir, "search", "hash_page.c"),
filepath.Join(libcDir, "search", "hcreate.c"),
filepath.Join(libcDir, "search", "hcreate_r.c"),
filepath.Join(libcDir, "search", "tdelete.c"),
filepath.Join(libcDir, "search", "tdestroy.c"),
filepath.Join(libcDir, "search", "tfind.c"),
filepath.Join(libcDir, "search", "tsearch.c"),
filepath.Join(libcDir, "search", "twalk.c"),
filepath.Join(libcDir, "search", "bsd_qsort_r.c"),
filepath.Join(libcDir, "search", "qsort_r.c"),
filepath.Join(libcDir, "stdio", "nano-vfprintf_float.c"),
filepath.Join(libcDir, "stdio", "nano-svfprintf.c"),
filepath.Join(libcDir, "stdio", "nano-svfscanf.c"),
filepath.Join(libcDir, "stdio", "nano-vfprintf.c"),
filepath.Join(libcDir, "stdio", "nano-vfprintf_i.c"),
filepath.Join(libcDir, "stdio", "nano-vfscanf.c"),
filepath.Join(libcDir, "stdio", "nano-vfscanf_i.c"),
filepath.Join(libcDir, "stdio", "nano-vfscanf_float.c"),
filepath.Join(libcDir, "stdio", "clearerr.c"),
filepath.Join(libcDir, "stdio", "fclose.c"),
filepath.Join(libcDir, "stdio", "fdopen.c"),
filepath.Join(libcDir, "stdio", "feof.c"),
filepath.Join(libcDir, "stdio", "ferror.c"),
filepath.Join(libcDir, "stdio", "fflush.c"),
filepath.Join(libcDir, "stdio", "fgetc.c"),
filepath.Join(libcDir, "stdio", "fgetpos.c"),
filepath.Join(libcDir, "stdio", "fgets.c"),
filepath.Join(libcDir, "stdio", "fileno.c"),
filepath.Join(libcDir, "stdio", "findfp.c"),
filepath.Join(libcDir, "stdio", "flags.c"),
filepath.Join(libcDir, "stdio", "fopen.c"),
filepath.Join(libcDir, "stdio", "fprintf.c"),
filepath.Join(libcDir, "stdio", "fputc.c"),
filepath.Join(libcDir, "stdio", "fputs.c"),
filepath.Join(libcDir, "stdio", "fread.c"),
filepath.Join(libcDir, "stdio", "freopen.c"),
filepath.Join(libcDir, "stdio", "fscanf.c"),
filepath.Join(libcDir, "stdio", "fseek.c"),
filepath.Join(libcDir, "stdio", "fsetpos.c"),
filepath.Join(libcDir, "stdio", "ftell.c"),
filepath.Join(libcDir, "stdio", "fvwrite.c"),
filepath.Join(libcDir, "stdio", "fwalk.c"),
filepath.Join(libcDir, "stdio", "fwrite.c"),
filepath.Join(libcDir, "stdio", "getc.c"),
filepath.Join(libcDir, "stdio", "getchar.c"),
filepath.Join(libcDir, "stdio", "getc_u.c"),
filepath.Join(libcDir, "stdio", "getchar_u.c"),
filepath.Join(libcDir, "stdio", "getdelim.c"),
filepath.Join(libcDir, "stdio", "getline.c"),
filepath.Join(libcDir, "stdio", "gets.c"),
filepath.Join(libcDir, "stdio", "makebuf.c"),
filepath.Join(libcDir, "stdio", "perror.c"),
filepath.Join(libcDir, "stdio", "printf.c"),
filepath.Join(libcDir, "stdio", "putc.c"),
filepath.Join(libcDir, "stdio", "putchar.c"),
filepath.Join(libcDir, "stdio", "putc_u.c"),
filepath.Join(libcDir, "stdio", "putchar_u.c"),
filepath.Join(libcDir, "stdio", "puts.c"),
filepath.Join(libcDir, "stdio", "refill.c"),
filepath.Join(libcDir, "stdio", "remove.c"),
filepath.Join(libcDir, "stdio", "rename.c"),
filepath.Join(libcDir, "stdio", "rewind.c"),
filepath.Join(libcDir, "stdio", "rget.c"),
filepath.Join(libcDir, "stdio", "scanf.c"),
filepath.Join(libcDir, "stdio", "sccl.c"),
filepath.Join(libcDir, "stdio", "setbuf.c"),
filepath.Join(libcDir, "stdio", "setbuffer.c"),
filepath.Join(libcDir, "stdio", "setlinebuf.c"),
filepath.Join(libcDir, "stdio", "setvbuf.c"),
filepath.Join(libcDir, "stdio", "snprintf.c"),
filepath.Join(libcDir, "stdio", "sprintf.c"),
filepath.Join(libcDir, "stdio", "sscanf.c"),
filepath.Join(libcDir, "stdio", "stdio.c"),
filepath.Join(libcDir, "stdio", "svfiwprintf.c"),
filepath.Join(libcDir, "stdio", "svfiwscanf.c"),
filepath.Join(libcDir, "stdio", "svfwprintf.c"),
filepath.Join(libcDir, "stdio", "svfwscanf.c"),
filepath.Join(libcDir, "stdio", "tmpfile.c"),
filepath.Join(libcDir, "stdio", "tmpnam.c"),
filepath.Join(libcDir, "stdio", "ungetc.c"),
filepath.Join(libcDir, "stdio", "vdprintf.c"),
filepath.Join(libcDir, "stdio", "vfiwprintf.c"),
filepath.Join(libcDir, "stdio", "vfiwscanf.c"),
filepath.Join(libcDir, "stdio", "vfwscanf.c"),
filepath.Join(libcDir, "stdio", "vprintf.c"),
filepath.Join(libcDir, "stdio", "vscanf.c"),
filepath.Join(libcDir, "stdio", "vsnprintf.c"),
filepath.Join(libcDir, "stdio", "vsprintf.c"),
filepath.Join(libcDir, "stdio", "vsscanf.c"),
filepath.Join(libcDir, "stdio", "wbuf.c"),
filepath.Join(libcDir, "stdio", "wsetup.c"),
filepath.Join(libcDir, "stdio", "asprintf.c"),
filepath.Join(libcDir, "stdio", "fcloseall.c"),
filepath.Join(libcDir, "stdio", "fseeko.c"),
filepath.Join(libcDir, "stdio", "ftello.c"),
filepath.Join(libcDir, "stdio", "getw.c"),
filepath.Join(libcDir, "stdio", "mktemp.c"),
filepath.Join(libcDir, "stdio", "putw.c"),
filepath.Join(libcDir, "stdio", "vasprintf.c"),
filepath.Join(libcDir, "stdio", "asnprintf.c"),
filepath.Join(libcDir, "stdio", "clearerr_u.c"),
filepath.Join(libcDir, "stdio", "dprintf.c"),
filepath.Join(libcDir, "stdio", "feof_u.c"),
filepath.Join(libcDir, "stdio", "ferror_u.c"),
filepath.Join(libcDir, "stdio", "fflush_u.c"),
filepath.Join(libcDir, "stdio", "fgetc_u.c"),
filepath.Join(libcDir, "stdio", "fgets_u.c"),
filepath.Join(libcDir, "stdio", "fgetwc.c"),
filepath.Join(libcDir, "stdio", "fgetwc_u.c"),
filepath.Join(libcDir, "stdio", "fgetws.c"),
filepath.Join(libcDir, "stdio", "fgetws_u.c"),
filepath.Join(libcDir, "stdio", "fileno_u.c"),
filepath.Join(libcDir, "stdio", "fmemopen.c"),
filepath.Join(libcDir, "stdio", "fopencookie.c"),
filepath.Join(libcDir, "stdio", "fpurge.c"),
filepath.Join(libcDir, "stdio", "fputc_u.c"),
filepath.Join(libcDir, "stdio", "fputs_u.c"),
filepath.Join(libcDir, "stdio", "fputwc.c"),
filepath.Join(libcDir, "stdio", "fputwc_u.c"),
filepath.Join(libcDir, "stdio", "fputws.c"),
filepath.Join(libcDir, "stdio", "fputws_u.c"),
filepath.Join(libcDir, "stdio", "fread_u.c"),
filepath.Join(libcDir, "stdio", "fsetlocking.c"),
filepath.Join(libcDir, "stdio", "funopen.c"),
filepath.Join(libcDir, "stdio", "fwide.c"),
filepath.Join(libcDir, "stdio", "fwprintf.c"),
filepath.Join(libcDir, "stdio", "fwrite_u.c"),
filepath.Join(libcDir, "stdio", "fwscanf.c"),
filepath.Join(libcDir, "stdio", "getwc.c"),
filepath.Join(libcDir, "stdio", "getwc_u.c"),
filepath.Join(libcDir, "stdio", "getwchar.c"),
filepath.Join(libcDir, "stdio", "getwchar_u.c"),
filepath.Join(libcDir, "stdio", "open_memstream.c"),
filepath.Join(libcDir, "stdio", "putwc.c"),
filepath.Join(libcDir, "stdio", "putwc_u.c"),
filepath.Join(libcDir, "stdio", "putwchar.c"),
filepath.Join(libcDir, "stdio", "putwchar_u.c"),
filepath.Join(libcDir, "stdio", "stdio_ext.c"),
filepath.Join(libcDir, "stdio", "swprintf.c"),
filepath.Join(libcDir, "stdio", "swscanf.c"),
filepath.Join(libcDir, "stdio", "ungetwc.c"),
filepath.Join(libcDir, "stdio", "vasnprintf.c"),
filepath.Join(libcDir, "stdio", "vswprintf.c"),
filepath.Join(libcDir, "stdio", "vswscanf.c"),
filepath.Join(libcDir, "stdio", "vwprintf.c"),
filepath.Join(libcDir, "stdio", "vwscanf.c"),
filepath.Join(libcDir, "stdio", "wprintf.c"),
filepath.Join(libcDir, "stdio", "wscanf.c"),
filepath.Join(libcDir, "string", "bcopy.c"),
filepath.Join(libcDir, "string", "bzero.c"),
filepath.Join(libcDir, "string", "explicit_bzero.c"),
filepath.Join(libcDir, "string", "ffsl.c"),
filepath.Join(libcDir, "string", "ffsll.c"),
filepath.Join(libcDir, "string", "fls.c"),
filepath.Join(libcDir, "string", "flsl.c"),
filepath.Join(libcDir, "string", "flsll.c"),
filepath.Join(libcDir, "string", "index.c"),
filepath.Join(libcDir, "string", "memchr.c"),
filepath.Join(libcDir, "string", "memcmp.c"),
filepath.Join(libcDir, "string", "memcpy.c"),
filepath.Join(libcDir, "string", "memmove.c"),
filepath.Join(libcDir, "string", "memset.c"),
filepath.Join(libcDir, "string", "rindex.c"),
filepath.Join(libcDir, "string", "strcasecmp.c"),
filepath.Join(libcDir, "string", "strcat.c"),
filepath.Join(libcDir, "string", "strchr.c"),
filepath.Join(libcDir, "string", "strcmp.c"),
filepath.Join(libcDir, "string", "strcoll.c"),
filepath.Join(libcDir, "string", "strcpy.c"),
filepath.Join(libcDir, "string", "strcspn.c"),
filepath.Join(libcDir, "string", "strdup.c"),
filepath.Join(libcDir, "string", "strdup_r.c"),
filepath.Join(libcDir, "string", "strerror.c"),
filepath.Join(libcDir, "string", "strerror_r.c"),
filepath.Join(libcDir, "string", "strlcat.c"),
filepath.Join(libcDir, "string", "strlcpy.c"),
filepath.Join(libcDir, "string", "strlen.c"),
filepath.Join(libcDir, "string", "strlwr.c"),
filepath.Join(libcDir, "string", "strncasecmp.c"),
filepath.Join(libcDir, "string", "strncat.c"),
filepath.Join(libcDir, "string", "strncmp.c"),
filepath.Join(libcDir, "string", "strncpy.c"),
filepath.Join(libcDir, "string", "strnlen.c"),
filepath.Join(libcDir, "string", "strnstr.c"),
filepath.Join(libcDir, "string", "strpbrk.c"),
filepath.Join(libcDir, "string", "strrchr.c"),
filepath.Join(libcDir, "string", "strsep.c"),
filepath.Join(libcDir, "string", "strsignal.c"),
filepath.Join(libcDir, "string", "strspn.c"),
filepath.Join(libcDir, "string", "strtok.c"),
filepath.Join(libcDir, "string", "strtok_r.c"),
filepath.Join(libcDir, "string", "strupr.c"),
filepath.Join(libcDir, "string", "strxfrm.c"),
filepath.Join(libcDir, "string", "strstr.c"),
filepath.Join(libcDir, "string", "swab.c"),
filepath.Join(libcDir, "string", "timingsafe_bcmp.c"),
filepath.Join(libcDir, "string", "timingsafe_memcmp.c"),
filepath.Join(libcDir, "string", "u_strerr.c"),
filepath.Join(libcDir, "string", "wcscat.c"),
filepath.Join(libcDir, "string", "wcschr.c"),
filepath.Join(libcDir, "string", "wcscmp.c"),
filepath.Join(libcDir, "string", "wcscoll.c"),
filepath.Join(libcDir, "string", "wcscpy.c"),
filepath.Join(libcDir, "string", "wcscspn.c"),
filepath.Join(libcDir, "string", "wcslcat.c"),
filepath.Join(libcDir, "string", "wcslcpy.c"),
filepath.Join(libcDir, "string", "wcslen.c"),
filepath.Join(libcDir, "string", "wcsncat.c"),
filepath.Join(libcDir, "string", "wcsncmp.c"),
filepath.Join(libcDir, "string", "wcsncpy.c"),
filepath.Join(libcDir, "string", "wcsnlen.c"),
filepath.Join(libcDir, "string", "wcspbrk.c"),
filepath.Join(libcDir, "string", "wcsrchr.c"),
filepath.Join(libcDir, "string", "wcsspn.c"),
filepath.Join(libcDir, "string", "wcsstr.c"),
filepath.Join(libcDir, "string", "wcstok.c"),
filepath.Join(libcDir, "string", "wcswidth.c"),
filepath.Join(libcDir, "string", "wcsxfrm.c"),
filepath.Join(libcDir, "string", "wcwidth.c"),
filepath.Join(libcDir, "string", "wmemchr.c"),
filepath.Join(libcDir, "string", "wmemcmp.c"),
filepath.Join(libcDir, "string", "wmemcpy.c"),
filepath.Join(libcDir, "string", "wmemmove.c"),
filepath.Join(libcDir, "string", "wmemset.c"),
filepath.Join(libcDir, "string", "xpg_strerror_r.c"),
filepath.Join(libcDir, "string", "bcmp.c"),
filepath.Join(libcDir, "string", "memccpy.c"),
filepath.Join(libcDir, "string", "mempcpy.c"),
filepath.Join(libcDir, "string", "stpcpy.c"),
filepath.Join(libcDir, "string", "stpncpy.c"),
filepath.Join(libcDir, "string", "strndup.c"),
filepath.Join(libcDir, "string", "strcasestr.c"),
filepath.Join(libcDir, "string", "strchrnul.c"),
filepath.Join(libcDir, "string", "strndup_r.c"),
filepath.Join(libcDir, "string", "wcpcpy.c"),
filepath.Join(libcDir, "string", "wcpncpy.c"),
filepath.Join(libcDir, "string", "wcsdup.c"),
filepath.Join(libcDir, "string", "gnu_basename.c"),
filepath.Join(libcDir, "string", "memmem.c"),
filepath.Join(libcDir, "string", "memrchr.c"),
filepath.Join(libcDir, "string", "rawmemchr.c"),
filepath.Join(libcDir, "string", "strcasecmp_l.c"),
filepath.Join(libcDir, "string", "strcoll_l.c"),
filepath.Join(libcDir, "string", "strncasecmp_l.c"),
filepath.Join(libcDir, "string", "strverscmp.c"),
filepath.Join(libcDir, "string", "strxfrm_l.c"),
filepath.Join(libcDir, "string", "wcscasecmp.c"),
filepath.Join(libcDir, "string", "wcscasecmp_l.c"),
filepath.Join(libcDir, "string", "wcscoll_l.c"),
filepath.Join(libcDir, "string", "wcsncasecmp.c"),
filepath.Join(libcDir, "string", "wcsncasecmp_l.c"),
filepath.Join(libcDir, "string", "wcsxfrm_l.c"),
filepath.Join(libcDir, "string", "wmempcpy.c"),
filepath.Join(libcDir, "signal", "psignal.c"),
filepath.Join(libcDir, "signal", "raise.c"),
filepath.Join(libcDir, "signal", "signal.c"),
filepath.Join(libcDir, "signal", "sig2str.c"),
filepath.Join(libcDir, "time", "asctime.c"),
filepath.Join(libcDir, "time", "asctime_r.c"),
filepath.Join(libcDir, "time", "clock.c"),
filepath.Join(libcDir, "time", "ctime.c"),
filepath.Join(libcDir, "time", "ctime_r.c"),
filepath.Join(libcDir, "time", "difftime.c"),
filepath.Join(libcDir, "time", "gettzinfo.c"),
filepath.Join(libcDir, "time", "gmtime.c"),
filepath.Join(libcDir, "time", "gmtime_r.c"),
filepath.Join(libcDir, "time", "lcltime.c"),
filepath.Join(libcDir, "time", "lcltime_r.c"),
filepath.Join(libcDir, "time", "mktime.c"),
filepath.Join(libcDir, "time", "month_lengths.c"),
filepath.Join(libcDir, "time", "strftime.c"),
filepath.Join(libcDir, "time", "strptime.c"),
filepath.Join(libcDir, "time", "time.c"),
filepath.Join(libcDir, "time", "tzcalc_limits.c"),
filepath.Join(libcDir, "time", "tzlock.c"),
filepath.Join(libcDir, "time", "tzset.c"),
filepath.Join(libcDir, "time", "tzset_r.c"),
filepath.Join(libcDir, "time", "tzvars.c"),
filepath.Join(libcDir, "time", "wcsftime.c"),
filepath.Join(libcDir, "locale", "locale.c"),
filepath.Join(libcDir, "locale", "localeconv.c"),
filepath.Join(libcDir, "locale", "duplocale.c"),
filepath.Join(libcDir, "locale", "freelocale.c"),
filepath.Join(libcDir, "locale", "lctype.c"),
filepath.Join(libcDir, "locale", "lmessages.c"),
filepath.Join(libcDir, "locale", "lnumeric.c"),
filepath.Join(libcDir, "locale", "lmonetary.c"),
filepath.Join(libcDir, "locale", "newlocale.c"),
filepath.Join(libcDir, "locale", "nl_langinfo.c"),
filepath.Join(libcDir, "locale", "timelocal.c"),
filepath.Join(libcDir, "locale", "uselocale.c"),
filepath.Join(libcDir, "reent", "closer.c"),
filepath.Join(libcDir, "reent", "reent.c"),
filepath.Join(libcDir, "reent", "impure.c"),
filepath.Join(libcDir, "reent", "fcntlr.c"),
filepath.Join(libcDir, "reent", "fstatr.c"),
filepath.Join(libcDir, "reent", "getentropyr.c"),
filepath.Join(libcDir, "reent", "getreent.c"),
filepath.Join(libcDir, "reent", "gettimeofdayr.c"),
filepath.Join(libcDir, "reent", "isattyr.c"),
filepath.Join(libcDir, "reent", "linkr.c"),
filepath.Join(libcDir, "reent", "lseekr.c"),
filepath.Join(libcDir, "reent", "mkdirr.c"),
filepath.Join(libcDir, "reent", "openr.c"),
filepath.Join(libcDir, "reent", "readr.c"),
filepath.Join(libcDir, "reent", "renamer.c"),
filepath.Join(libcDir, "reent", "signalr.c"),
filepath.Join(libcDir, "reent", "signgam.c"),
filepath.Join(libcDir, "reent", "sbrkr.c"),
filepath.Join(libcDir, "reent", "statr.c"),
filepath.Join(libcDir, "reent", "timesr.c"),
filepath.Join(libcDir, "reent", "unlinkr.c"),
filepath.Join(libcDir, "reent", "writer.c"),
filepath.Join(libcDir, "reent", "execr.c"),
filepath.Join(libcDir, "errno", "errno.c"),
filepath.Join(libcDir, "misc", "__dprintf.c"),
filepath.Join(libcDir, "misc", "unctrl.c"),
filepath.Join(libcDir, "misc", "ffs.c"),
filepath.Join(libcDir, "misc", "init.c"),
filepath.Join(libcDir, "misc", "fini.c"),
filepath.Join(libcDir, "misc", "lock.c"),
filepath.Join(libcDir, "posix", "closedir.c"),
filepath.Join(libcDir, "posix", "collate.c"),
filepath.Join(libcDir, "posix", "collcmp.c"),
filepath.Join(libcDir, "posix", "creat.c"),
filepath.Join(libcDir, "posix", "dirfd.c"),
// filepath.Join(libcDir, "posix", "fnmatch.c"),
filepath.Join(libcDir, "posix", "glob.c"),
filepath.Join(libcDir, "posix", "_isatty.c"),
filepath.Join(libcDir, "posix", "isatty.c"),
filepath.Join(libcDir, "posix", "opendir.c"),
filepath.Join(libcDir, "posix", "readdir.c"),
filepath.Join(libcDir, "posix", "readdir_r.c"),
filepath.Join(libcDir, "posix", "regcomp.c"),
filepath.Join(libcDir, "posix", "regerror.c"),
filepath.Join(libcDir, "posix", "regexec.c"),
filepath.Join(libcDir, "posix", "regfree.c"),
filepath.Join(libcDir, "posix", "rewinddir.c"),
filepath.Join(libcDir, "posix", "sleep.c"),
filepath.Join(libcDir, "posix", "usleep.c"),
filepath.Join(libcDir, "posix", "telldir.c"),
filepath.Join(libcDir, "posix", "ftw.c"),
filepath.Join(libcDir, "posix", "nftw.c"),
filepath.Join(libcDir, "posix", "scandir.c"),
filepath.Join(libcDir, "posix", "seekdir.c"),
filepath.Join(libcDir, "posix", "execl.c"),
filepath.Join(libcDir, "posix", "execle.c"),
filepath.Join(libcDir, "posix", "execlp.c"),
filepath.Join(libcDir, "posix", "execv.c"),
filepath.Join(libcDir, "posix", "execve.c"),
filepath.Join(libcDir, "posix", "execvp.c"),
filepath.Join(libcDir, "posix", "wordexp.c"),
filepath.Join(libcDir, "posix", "wordfree.c"),
filepath.Join(libcDir, "posix", "popen.c"),
filepath.Join(libcDir, "posix", "posix_spawn.c"),
filepath.Join(libcDir, "syscalls", "sysclose.c"),
filepath.Join(libcDir, "syscalls", "sysfcntl.c"),
filepath.Join(libcDir, "syscalls", "sysfstat.c"),
filepath.Join(libcDir, "syscalls", "sysgetentropy.c"),
filepath.Join(libcDir, "syscalls", "sysgetpid.c"),
filepath.Join(libcDir, "syscalls", "sysgettod.c"),
filepath.Join(libcDir, "syscalls", "sysisatty.c"),
filepath.Join(libcDir, "syscalls", "syskill.c"),
filepath.Join(libcDir, "syscalls", "syslink.c"),
filepath.Join(libcDir, "syscalls", "syslseek.c"),
filepath.Join(libcDir, "syscalls", "sysopen.c"),
filepath.Join(libcDir, "syscalls", "sysread.c"),
filepath.Join(libcDir, "syscalls", "syssbrk.c"),
filepath.Join(libcDir, "syscalls", "sysstat.c"),
filepath.Join(libcDir, "syscalls", "systimes.c"),
filepath.Join(libcDir, "syscalls", "sysunlink.c"),
filepath.Join(libcDir, "syscalls", "syswrite.c"),
filepath.Join(libcDir, "syscalls", "sysexecve.c"),
filepath.Join(libcDir, "syscalls", "sysfork.c"),
filepath.Join(libcDir, "syscalls", "syswait.c"),
filepath.Join(libcDir, "iconv", "ces", "utf-8.c"),
filepath.Join(libcDir, "iconv", "ces", "utf-16.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-2.c"),
filepath.Join(libcDir, "iconv", "ces", "us-ascii.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-4.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-2-internal.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-4-internal.c"),
filepath.Join(libcDir, "iconv", "ces", "cesbi.c"),
filepath.Join(libcDir, "iconv", "ces", "table.c"),
filepath.Join(libcDir, "iconv", "ces", "table-pcs.c"),
filepath.Join(libcDir, "iconv", "ces", "euc.c"),
filepath.Join(libcDir, "iconv", "ccs", "ccsbi.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_10.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_13.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_14.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_15.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_1.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_2.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_3.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_4.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_5.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_6.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_7.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_8.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_9.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_11.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1250.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1252.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1254.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1256.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1258.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1251.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1253.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1255.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1257.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_r.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_u.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_ru.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_uni.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_ir_111.c"),
filepath.Join(libcDir, "iconv", "ccs", "big5.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp775.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp850.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp852.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp855.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp866.c"),
filepath.Join(libcDir, "iconv", "ccs", "jis_x0212_1990.c"),
filepath.Join(libcDir, "iconv", "ccs", "jis_x0201_1976.c"),
filepath.Join(libcDir, "iconv", "ccs", "jis_x0208_1990.c"),
filepath.Join(libcDir, "iconv", "ccs", "ksx1001.c"),
filepath.Join(libcDir, "iconv", "ccs", "cns11643_plane1.c"),
filepath.Join(libcDir, "iconv", "ccs", "cns11643_plane2.c"),
filepath.Join(libcDir, "iconv", "ccs", "cns11643_plane14.c"),
filepath.Join(libcDir, "iconv", "lib", "aliasesi.c"),
filepath.Join(libcDir, "iconv", "lib", "ucsconv.c"),
filepath.Join(libcDir, "iconv", "lib", "nullconv.c"),
filepath.Join(libcDir, "iconv", "lib", "iconv.c"),
filepath.Join(libcDir, "iconv", "lib", "aliasesbi.c"),
filepath.Join(libcDir, "iconv", "lib", "iconvnls.c"),
filepath.Join(libcDir, "ssp", "chk_fail.c"),
filepath.Join(libcDir, "ssp", "stack_protector.c"),
filepath.Join(libcDir, "ssp", "memcpy_chk.c"),
filepath.Join(libcDir, "ssp", "memmove_chk.c"),
filepath.Join(libcDir, "ssp", "mempcpy_chk.c"),
filepath.Join(libcDir, "ssp", "memset_chk.c"),
filepath.Join(libcDir, "ssp", "stpcpy_chk.c"),
filepath.Join(libcDir, "ssp", "stpncpy_chk.c"),
filepath.Join(libcDir, "ssp", "strcat_chk.c"),
filepath.Join(libcDir, "ssp", "strcpy_chk.c"),
filepath.Join(libcDir, "ssp", "strncat_chk.c"),
filepath.Join(libcDir, "ssp", "strncpy_chk.c"),
filepath.Join(libcDir, "ssp", "gets_chk.c"),
filepath.Join(libcDir, "ssp", "snprintf_chk.c"),
filepath.Join(libcDir, "ssp", "sprintf_chk.c"),
filepath.Join(libcDir, "ssp", "vsnprintf_chk.c"),
filepath.Join(libcDir, "ssp", "vsprintf_chk.c"),
filepath.Join(libcDir, "machine", "riscv", "memmove.S"),
filepath.Join(libcDir, "machine", "riscv", "memmove-stub.c"),
filepath.Join(libcDir, "machine", "riscv", "memset.S"),
filepath.Join(libcDir, "machine", "riscv", "memcpy-asm.S"),
filepath.Join(libcDir, "machine", "riscv", "memcpy.c"),
filepath.Join(libcDir, "machine", "riscv", "strlen.c"),
filepath.Join(libcDir, "machine", "riscv", "strcpy.c"),
filepath.Join(libcDir, "machine", "riscv", "strcmp.S"),
filepath.Join(libcDir, "machine", "riscv", "setjmp.S"),
filepath.Join(libcDir, "machine", "riscv", "ieeefp.c"),
filepath.Join(libcDir, "machine", "riscv", "ffs.c"),
},
CFlags: []string{
"-DHAVE_CONFIG_H",
"-D_LIBC",
"-DHAVE_NANOSLEEP",
"-D__NO_SYSCALLS__",
"-D_NO_GLOB",
"-D_NO_EXECVE",
"-D_NO_GETLOGIN",
"-D_NO_GETPWENT",
"-D_NO_GETUT",
"-D_NO_GETPASS",
"-D_NO_SIGSET",
"-D_NO_WORDEXP",
"-D_NO_POPEN",
"-D_NO_POSIX_SPAWN",
"-DHAVE_FCNTL",
"-DHAVE_BLKSIZE",
"-DHAVE_OPENDIR",
"-DHAVE_RENAME",
"-DGETREENT_PROVIDED",
"-DSIGNAL_PROVIDED",
"-D__ESP__",
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + filepath.Join(baseDir, "newlib"),
"-I" + libcDir,
"-I" + filepath.Join(libcDir, "riscv"),
"-I" + filepath.Join(baseDir, "libgloss"),
// TODO(MeteorsLiu): support riscv
"-idirafter" + filepath.Join(baseDir, "include"),
"-I" + filepath.Join(libcDir, "ssp"),
"-I" + filepath.Join(libcDir, "locale"),
"-I" + filepath.Join(libcDir, "errno"),
"-I" + filepath.Join(libcDir, "syscalls"),
"-I" + filepath.Join(libcDir, "iconv", "lib"),
"-I" + filepath.Join(libcDir, "argz"),
"-I" + filepath.Join(libcDir, "stdio"),
"-I" + filepath.Join(libcDir, "iconv", "ces"),
"-I" + filepath.Join(libcDir, "iconv", "ccs"),
"-I" + filepath.Join(libcDir, "ctype"),
"-I" + filepath.Join(libcDir, "signal"),
"-I" + filepath.Join(libcDir, "time"),
"-I" + filepath.Join(libcDir, "reent"),
"-I" + filepath.Join(libcDir, "machine", "riscv", "include"),
"-I" + filepath.Join(libcDir, "string"),
"-I" + filepath.Join(libcDir, "iconv", "ces"),
"-I" + filepath.Join(libcDir, "search"),
"-I" + filepath.Join(libcDir, "misc"),
"-I" + filepath.Join(libcDir, "posix"),
"-I" + filepath.Join(libcDir, "stdlib"),
},
LDFlags: _libcLDFlags,
CCFlags: withDefaultCCFlags([]string{
"-fno-builtin",
"-Wno-implicit-function-declaration",
"-Wno-int-conversion",
"-Wno-unused-command-line-argument",
}),
},
},
}
}
func getNewlibESP32ConfigXtensa(baseDir, target string) *compile.CompileConfig {
libcDir := filepath.Join(baseDir, "newlib", "libc")
libcIncludeDir := []string{
"-I" + filepath.Join(libcDir, "include"),
"-I" + filepath.Join(baseDir, "newlib"),
"-I" + libcDir,
}
return &compile.CompileConfig{
Url: _newlibUrl,
Name: "newlib-esp32",
ArchiveSrcDir: _archiveInternalSrcDir,
LibcCFlags: libcIncludeDir,
Groups: []compile.CompileGroup{
{
OutputFileName: fmt.Sprintf("libcrt0-%s.a", target),
Files: []string{
filepath.Join(baseDir, "libgloss", "xtensa", "clibrary_init.c"),
filepath.Join(baseDir, "libgloss", "xtensa", "syscalls.c"),
filepath.Join(baseDir, "libgloss", "xtensa", "boards", "esp32", "board.c"),
filepath.Join(baseDir, "libgloss", "xtensa", "crt1-boards.S"),
filepath.Join(baseDir, "libgloss", "xtensa", "sleep.S"),
filepath.Join(baseDir, "libgloss", "xtensa", "window-vectors.S"),
},
CFlags: []string{
"-DHAVE_CONFIG_H",
"-D_LIBGLOSS",
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + filepath.Join(baseDir, "libgloss"),
// TODO(MeteorsLiu): support riscv
"-I" + filepath.Join(baseDir, "libgloss", "xtensa", "include"),
"-I" + filepath.Join(baseDir, "libgloss", "xtensa", "boards", "esp32", "include"),
},
LDFlags: _libcLDFlags,
CCFlags: _libcCCFlags,
},
{
OutputFileName: fmt.Sprintf("libgloss-%s.a", target),
Files: []string{
filepath.Join(baseDir, "libgloss", "libnosys", "chown.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "close.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "environ.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "errno.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "execve.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "fork.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "fstat.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getpid.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "gettod.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "isatty.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "kill.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "link.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "lseek.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "open.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "read.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "readlink.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "sbrk.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "stat.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "symlink.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "times.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "unlink.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "wait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "write.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getentropy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_exit.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getreent.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "time.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "fcntl.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "chdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "chmod.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "closedir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "dirfd.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "ftw.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "getcwd.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "mkdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "nftw.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "opendir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pathconf.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "readdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "rewinddir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "scandir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "seekdir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "telldir.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "rename.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_pop.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_pop_restore.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_push.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "_pthread_cleanup_push_defer.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_atfork.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getdetachstate.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getguardsize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getinheritsched.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getschedpolicy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getscope.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getstack.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getstackaddr.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_getstacksize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setdetachstate.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setguardsize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setinheritsched.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setschedpolicy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setscope.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setstack.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setstackaddr.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_attr_setstacksize.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrier_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrier_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrier_wait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_barrierattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cancel.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_broadcast.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_clockwait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_signal.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_timedwait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_cond_wait.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_getclock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_setclock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_condattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_create.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_detach.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_equal.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_exit.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getattr_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getconcurrency.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getcpuclockid.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getname_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_getspecific.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_join.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_key_create.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_key_delete.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_clocklock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_getprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_lock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_setprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_timedlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_trylock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutex_unlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_getprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_getprotocol.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_gettype.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_setprioceiling.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_setprotocol.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_mutexattr_settype.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_once.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_clockrdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_clockwrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_rdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_timedrdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_timedwrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_tryrdlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_trywrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_unlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlock_wrlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_getpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_rwlockattr_setpshared.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_self.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setaffinity_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setcancelstate.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setcanceltype.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setconcurrency.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setname_np.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setschedparam.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setschedprio.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_setspecific.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_destroy.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_init.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_lock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_trylock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_spin_unlock.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_testcancel.c"),
filepath.Join(baseDir, "libgloss", "libnosys", "pthread_yield.c"),
},
CFlags: []string{
"-D__NO_SYSCALLS__",
"-D_NO_GETUT",
"-DHAVE_CONFIG_H",
"-D_LIBC",
"-D_NO_GLOB",
"-D_NO_GETPWENT",
"-D_NO_SIGSET",
"-D__ESP__",
"-D_NO_GETPASS",
"-D_NO_POSIX_SPAWN",
"-DHAVE_FCNTL",
"-DHAVE_BLKSIZE",
"-DHAVE_OPENDIR",
"-D_GNU_SOURCE",
"-D_LIBGLOSS",
"-D_NO_EXECVE",
"-D_NO_GETLOGIN",
"-D_NO_WORDEXP",
"-D_NO_POPEN",
"-DHAVE_RENAME",
"-DGETREENT_PROVIDED",
"-DSIGNAL_PROVIDED",
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + libcDir,
"-I" + filepath.Join(libcDir, "xtensa"),
"-I" + filepath.Join(baseDir, "libgloss"),
// TODO(MeteorsLiu): support riscv
"-I" + filepath.Join(baseDir, "libgloss", "xtensa", "include"),
"-I" + filepath.Join(baseDir, "libgloss", "xtensa", "boards", "esp32", "include"),
},
LDFlags: _libcLDFlags,
CCFlags: _libcCCFlags,
},
{
OutputFileName: fmt.Sprintf("libc-%s.a", target),
Files: []string{
filepath.Join(libcDir, "argz", "argz_add.c"),
filepath.Join(libcDir, "argz", "argz_add_sep.c"),
filepath.Join(libcDir, "argz", "argz_append.c"),
filepath.Join(libcDir, "argz", "argz_count.c"),
filepath.Join(libcDir, "argz", "argz_create.c"),
filepath.Join(libcDir, "argz", "argz_create_sep.c"),
filepath.Join(libcDir, "argz", "argz_delete.c"),
filepath.Join(libcDir, "argz", "argz_extract.c"),
filepath.Join(libcDir, "argz", "argz_insert.c"),
filepath.Join(libcDir, "argz", "argz_next.c"),
filepath.Join(libcDir, "argz", "argz_replace.c"),
filepath.Join(libcDir, "argz", "argz_stringify.c"),
filepath.Join(libcDir, "argz", "buf_findstr.c"),
filepath.Join(libcDir, "argz", "envz_entry.c"),
filepath.Join(libcDir, "argz", "envz_get.c"),
filepath.Join(libcDir, "argz", "envz_add.c"),
filepath.Join(libcDir, "argz", "envz_remove.c"),
filepath.Join(libcDir, "argz", "envz_merge.c"),
filepath.Join(libcDir, "argz", "envz_strip.c"),
filepath.Join(libcDir, "stdlib", "__adjust.c"),
filepath.Join(libcDir, "stdlib", "__atexit.c"),
filepath.Join(libcDir, "stdlib", "__call_atexit.c"),
filepath.Join(libcDir, "stdlib", "__exp10.c"),
filepath.Join(libcDir, "stdlib", "__ten_mu.c"),
filepath.Join(libcDir, "stdlib", "_Exit.c"),
filepath.Join(libcDir, "stdlib", "abort.c"),
filepath.Join(libcDir, "stdlib", "abs.c"),
filepath.Join(libcDir, "stdlib", "aligned_alloc.c"),
filepath.Join(libcDir, "stdlib", "assert.c"),
filepath.Join(libcDir, "stdlib", "atexit.c"),
filepath.Join(libcDir, "stdlib", "atof.c"),
filepath.Join(libcDir, "stdlib", "atoff.c"),
filepath.Join(libcDir, "stdlib", "atoi.c"),
filepath.Join(libcDir, "stdlib", "atol.c"),
filepath.Join(libcDir, "stdlib", "calloc.c"),
filepath.Join(libcDir, "stdlib", "callocr.c"),
filepath.Join(libcDir, "stdlib", "cfreer.c"),
filepath.Join(libcDir, "stdlib", "div.c"),
filepath.Join(libcDir, "stdlib", "dtoa.c"),
filepath.Join(libcDir, "stdlib", "dtoastub.c"),
filepath.Join(libcDir, "stdlib", "environ.c"),
filepath.Join(libcDir, "stdlib", "envlock.c"),
filepath.Join(libcDir, "stdlib", "eprintf.c"),
filepath.Join(libcDir, "stdlib", "exit.c"),
filepath.Join(libcDir, "stdlib", "freer.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-gethex.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-hexnan.c"),
filepath.Join(libcDir, "stdlib", "getenv.c"),
filepath.Join(libcDir, "stdlib", "getenv_r.c"),
filepath.Join(libcDir, "stdlib", "imaxabs.c"),
filepath.Join(libcDir, "stdlib", "imaxdiv.c"),
filepath.Join(libcDir, "stdlib", "itoa.c"),
filepath.Join(libcDir, "stdlib", "labs.c"),
filepath.Join(libcDir, "stdlib", "ldiv.c"),
filepath.Join(libcDir, "stdlib", "ldtoa.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-ldtoa.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-gdtoa.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-dmisc.c"),
filepath.Join(libcDir, "stdlib", "gdtoa-gmisc.c"),
filepath.Join(libcDir, "stdlib", "mallinfor.c"),
filepath.Join(libcDir, "stdlib", "malloc.c"),
filepath.Join(libcDir, "stdlib", "mallocr.c"),
filepath.Join(libcDir, "stdlib", "mallstatsr.c"),
filepath.Join(libcDir, "stdlib", "mblen.c"),
filepath.Join(libcDir, "stdlib", "mblen_r.c"),
filepath.Join(libcDir, "stdlib", "mbstowcs.c"),
filepath.Join(libcDir, "stdlib", "mbstowcs_r.c"),
filepath.Join(libcDir, "stdlib", "mbtowc.c"),
filepath.Join(libcDir, "stdlib", "mbtowc_r.c"),
filepath.Join(libcDir, "stdlib", "mlock.c"),
filepath.Join(libcDir, "stdlib", "mprec.c"),
filepath.Join(libcDir, "stdlib", "msizer.c"),
filepath.Join(libcDir, "stdlib", "mstats.c"),
filepath.Join(libcDir, "stdlib", "on_exit_args.c"),
filepath.Join(libcDir, "stdlib", "quick_exit.c"),
filepath.Join(libcDir, "stdlib", "rand.c"),
filepath.Join(libcDir, "stdlib", "rand_r.c"),
filepath.Join(libcDir, "stdlib", "random.c"),
filepath.Join(libcDir, "stdlib", "realloc.c"),
filepath.Join(libcDir, "stdlib", "reallocarray.c"),
filepath.Join(libcDir, "stdlib", "reallocf.c"),
filepath.Join(libcDir, "stdlib", "reallocr.c"),
filepath.Join(libcDir, "stdlib", "sb_charsets.c"),
filepath.Join(libcDir, "stdlib", "strtod.c"),
filepath.Join(libcDir, "stdlib", "strtoimax.c"),
filepath.Join(libcDir, "stdlib", "strtol.c"),
filepath.Join(libcDir, "stdlib", "strtoul.c"),
filepath.Join(libcDir, "stdlib", "strtoumax.c"),
filepath.Join(libcDir, "stdlib", "utoa.c"),
filepath.Join(libcDir, "stdlib", "wcstod.c"),
filepath.Join(libcDir, "stdlib", "wcstoimax.c"),
filepath.Join(libcDir, "stdlib", "wcstol.c"),
filepath.Join(libcDir, "stdlib", "wcstoul.c"),
filepath.Join(libcDir, "stdlib", "wcstoumax.c"),
filepath.Join(libcDir, "stdlib", "wcstombs.c"),
filepath.Join(libcDir, "stdlib", "wcstombs_r.c"),
filepath.Join(libcDir, "stdlib", "wctomb.c"),
filepath.Join(libcDir, "stdlib", "wctomb_r.c"),
filepath.Join(libcDir, "stdlib", "strtodg.c"),
filepath.Join(libcDir, "stdlib", "strtold.c"),
filepath.Join(libcDir, "stdlib", "strtorx.c"),
filepath.Join(libcDir, "stdlib", "wcstold.c"),
filepath.Join(libcDir, "stdlib", "arc4random.c"),
filepath.Join(libcDir, "stdlib", "arc4random_uniform.c"),
filepath.Join(libcDir, "stdlib", "cxa_atexit.c"),
filepath.Join(libcDir, "stdlib", "cxa_finalize.c"),
filepath.Join(libcDir, "stdlib", "drand48.c"),
filepath.Join(libcDir, "stdlib", "ecvtbuf.c"),
filepath.Join(libcDir, "stdlib", "efgcvt.c"),
filepath.Join(libcDir, "stdlib", "erand48.c"),
filepath.Join(libcDir, "stdlib", "jrand48.c"),
filepath.Join(libcDir, "stdlib", "lcong48.c"),
filepath.Join(libcDir, "stdlib", "lrand48.c"),
filepath.Join(libcDir, "stdlib", "mrand48.c"),
filepath.Join(libcDir, "stdlib", "msize.c"),
filepath.Join(libcDir, "stdlib", "mtrim.c"),
filepath.Join(libcDir, "stdlib", "nrand48.c"),
filepath.Join(libcDir, "stdlib", "rand48.c"),
filepath.Join(libcDir, "stdlib", "seed48.c"),
filepath.Join(libcDir, "stdlib", "srand48.c"),
filepath.Join(libcDir, "stdlib", "strtoll.c"),
filepath.Join(libcDir, "stdlib", "strtoll_r.c"),
filepath.Join(libcDir, "stdlib", "strtoull.c"),
filepath.Join(libcDir, "stdlib", "strtoull_r.c"),
filepath.Join(libcDir, "stdlib", "wcstoll.c"),
filepath.Join(libcDir, "stdlib", "wcstoll_r.c"),
filepath.Join(libcDir, "stdlib", "wcstoull.c"),
filepath.Join(libcDir, "stdlib", "wcstoull_r.c"),
filepath.Join(libcDir, "stdlib", "atoll.c"),
filepath.Join(libcDir, "stdlib", "llabs.c"),
filepath.Join(libcDir, "stdlib", "lldiv.c"),
filepath.Join(libcDir, "stdlib", "a64l.c"),
filepath.Join(libcDir, "stdlib", "btowc.c"),
filepath.Join(libcDir, "stdlib", "getopt.c"),
filepath.Join(libcDir, "stdlib", "getsubopt.c"),
filepath.Join(libcDir, "stdlib", "l64a.c"),
filepath.Join(libcDir, "stdlib", "malign.c"),
filepath.Join(libcDir, "stdlib", "malignr.c"),
filepath.Join(libcDir, "stdlib", "malloptr.c"),
filepath.Join(libcDir, "stdlib", "mbrlen.c"),
filepath.Join(libcDir, "stdlib", "mbrtowc.c"),
filepath.Join(libcDir, "stdlib", "mbsinit.c"),
filepath.Join(libcDir, "stdlib", "mbsnrtowcs.c"),
filepath.Join(libcDir, "stdlib", "mbsrtowcs.c"),
filepath.Join(libcDir, "stdlib", "on_exit.c"),
filepath.Join(libcDir, "stdlib", "pvallocr.c"),
filepath.Join(libcDir, "stdlib", "valloc.c"),
filepath.Join(libcDir, "stdlib", "vallocr.c"),
filepath.Join(libcDir, "stdlib", "wcrtomb.c"),
filepath.Join(libcDir, "stdlib", "wcsnrtombs.c"),
filepath.Join(libcDir, "stdlib", "wcsrtombs.c"),
filepath.Join(libcDir, "stdlib", "wctob.c"),
filepath.Join(libcDir, "stdlib", "putenv.c"),
filepath.Join(libcDir, "stdlib", "putenv_r.c"),
filepath.Join(libcDir, "stdlib", "setenv.c"),
filepath.Join(libcDir, "stdlib", "setenv_r.c"),
filepath.Join(libcDir, "stdlib", "rpmatch.c"),
filepath.Join(libcDir, "stdlib", "system.c"),
filepath.Join(libcDir, "ctype", "ctype_.c"),
filepath.Join(libcDir, "ctype", "isalnum.c"),
filepath.Join(libcDir, "ctype", "isalpha.c"),
filepath.Join(libcDir, "ctype", "iscntrl.c"),
filepath.Join(libcDir, "ctype", "isdigit.c"),
filepath.Join(libcDir, "ctype", "islower.c"),
filepath.Join(libcDir, "ctype", "isupper.c"),
filepath.Join(libcDir, "ctype", "isprint.c"),
filepath.Join(libcDir, "ctype", "ispunct.c"),
filepath.Join(libcDir, "ctype", "isspace.c"),
filepath.Join(libcDir, "ctype", "isxdigit.c"),
filepath.Join(libcDir, "ctype", "tolower.c"),
filepath.Join(libcDir, "ctype", "toupper.c"),
filepath.Join(libcDir, "ctype", "categories.c"),
filepath.Join(libcDir, "ctype", "isalnum_l.c"),
filepath.Join(libcDir, "ctype", "isalpha_l.c"),
filepath.Join(libcDir, "ctype", "isascii.c"),
filepath.Join(libcDir, "ctype", "isascii_l.c"),
filepath.Join(libcDir, "ctype", "isblank.c"),
filepath.Join(libcDir, "ctype", "isblank_l.c"),
filepath.Join(libcDir, "ctype", "iscntrl_l.c"),
filepath.Join(libcDir, "ctype", "isdigit_l.c"),
filepath.Join(libcDir, "ctype", "islower_l.c"),
filepath.Join(libcDir, "ctype", "isupper_l.c"),
filepath.Join(libcDir, "ctype", "isprint_l.c"),
filepath.Join(libcDir, "ctype", "ispunct_l.c"),
filepath.Join(libcDir, "ctype", "isspace_l.c"),
filepath.Join(libcDir, "ctype", "iswalnum.c"),
filepath.Join(libcDir, "ctype", "iswalnum_l.c"),
filepath.Join(libcDir, "ctype", "iswalpha.c"),
filepath.Join(libcDir, "ctype", "iswalpha_l.c"),
filepath.Join(libcDir, "ctype", "iswblank.c"),
filepath.Join(libcDir, "ctype", "iswblank_l.c"),
filepath.Join(libcDir, "ctype", "iswcntrl.c"),
filepath.Join(libcDir, "ctype", "iswcntrl_l.c"),
filepath.Join(libcDir, "ctype", "iswctype.c"),
filepath.Join(libcDir, "ctype", "iswctype_l.c"),
filepath.Join(libcDir, "ctype", "iswdigit.c"),
filepath.Join(libcDir, "ctype", "iswdigit_l.c"),
filepath.Join(libcDir, "ctype", "iswgraph.c"),
filepath.Join(libcDir, "ctype", "iswgraph_l.c"),
filepath.Join(libcDir, "ctype", "iswlower.c"),
filepath.Join(libcDir, "ctype", "iswlower_l.c"),
filepath.Join(libcDir, "ctype", "iswprint.c"),
filepath.Join(libcDir, "ctype", "iswprint_l.c"),
filepath.Join(libcDir, "ctype", "iswpunct.c"),
filepath.Join(libcDir, "ctype", "iswpunct_l.c"),
filepath.Join(libcDir, "ctype", "iswspace.c"),
filepath.Join(libcDir, "ctype", "iswspace_l.c"),
filepath.Join(libcDir, "ctype", "iswupper.c"),
filepath.Join(libcDir, "ctype", "iswupper_l.c"),
filepath.Join(libcDir, "ctype", "iswxdigit.c"),
filepath.Join(libcDir, "ctype", "iswxdigit_l.c"),
filepath.Join(libcDir, "ctype", "isxdigit_l.c"),
filepath.Join(libcDir, "ctype", "jp2uc.c"),
filepath.Join(libcDir, "ctype", "toascii.c"),
filepath.Join(libcDir, "ctype", "toascii_l.c"),
filepath.Join(libcDir, "ctype", "tolower_l.c"),
filepath.Join(libcDir, "ctype", "toupper_l.c"),
filepath.Join(libcDir, "ctype", "towctrans.c"),
filepath.Join(libcDir, "ctype", "towctrans_l.c"),
filepath.Join(libcDir, "ctype", "towlower.c"),
filepath.Join(libcDir, "ctype", "towlower_l.c"),
filepath.Join(libcDir, "ctype", "towupper.c"),
filepath.Join(libcDir, "ctype", "towupper_l.c"),
filepath.Join(libcDir, "ctype", "wctrans.c"),
filepath.Join(libcDir, "ctype", "wctrans_l.c"),
filepath.Join(libcDir, "ctype", "wctype.c"),
filepath.Join(libcDir, "ctype", "wctype_l.c"),
filepath.Join(libcDir, "search", "bsearch.c"),
filepath.Join(libcDir, "search", "ndbm.c"),
filepath.Join(libcDir, "search", "qsort.c"),
filepath.Join(libcDir, "search", "hash.c"),
filepath.Join(libcDir, "search", "hash_bigkey.c"),
filepath.Join(libcDir, "search", "hash_buf.c"),
filepath.Join(libcDir, "search", "hash_func.c"),
filepath.Join(libcDir, "search", "hash_log2.c"),
filepath.Join(libcDir, "search", "hash_page.c"),
filepath.Join(libcDir, "search", "hcreate.c"),
filepath.Join(libcDir, "search", "hcreate_r.c"),
filepath.Join(libcDir, "search", "tdelete.c"),
filepath.Join(libcDir, "search", "tdestroy.c"),
filepath.Join(libcDir, "search", "tfind.c"),
filepath.Join(libcDir, "search", "tsearch.c"),
filepath.Join(libcDir, "search", "twalk.c"),
filepath.Join(libcDir, "search", "bsd_qsort_r.c"),
filepath.Join(libcDir, "search", "qsort_r.c"),
filepath.Join(libcDir, "stdio", "nano-vfprintf_float.c"),
filepath.Join(libcDir, "stdio", "nano-svfprintf.c"),
filepath.Join(libcDir, "stdio", "nano-svfscanf.c"),
filepath.Join(libcDir, "stdio", "nano-vfprintf.c"),
filepath.Join(libcDir, "stdio", "nano-vfprintf_i.c"),
filepath.Join(libcDir, "stdio", "nano-vfscanf.c"),
filepath.Join(libcDir, "stdio", "nano-vfscanf_i.c"),
filepath.Join(libcDir, "stdio", "nano-vfscanf_float.c"),
filepath.Join(libcDir, "stdio", "clearerr.c"),
filepath.Join(libcDir, "stdio", "fclose.c"),
filepath.Join(libcDir, "stdio", "fdopen.c"),
filepath.Join(libcDir, "stdio", "feof.c"),
filepath.Join(libcDir, "stdio", "ferror.c"),
filepath.Join(libcDir, "stdio", "fflush.c"),
filepath.Join(libcDir, "stdio", "fgetc.c"),
filepath.Join(libcDir, "stdio", "fgetpos.c"),
filepath.Join(libcDir, "stdio", "fgets.c"),
filepath.Join(libcDir, "stdio", "fileno.c"),
filepath.Join(libcDir, "stdio", "findfp.c"),
filepath.Join(libcDir, "stdio", "flags.c"),
filepath.Join(libcDir, "stdio", "fopen.c"),
filepath.Join(libcDir, "stdio", "fprintf.c"),
filepath.Join(libcDir, "stdio", "fputc.c"),
filepath.Join(libcDir, "stdio", "fputs.c"),
filepath.Join(libcDir, "stdio", "fread.c"),
filepath.Join(libcDir, "stdio", "freopen.c"),
filepath.Join(libcDir, "stdio", "fscanf.c"),
filepath.Join(libcDir, "stdio", "fseek.c"),
filepath.Join(libcDir, "stdio", "fsetpos.c"),
filepath.Join(libcDir, "stdio", "ftell.c"),
filepath.Join(libcDir, "stdio", "fvwrite.c"),
filepath.Join(libcDir, "stdio", "fwalk.c"),
filepath.Join(libcDir, "stdio", "fwrite.c"),
filepath.Join(libcDir, "stdio", "getc.c"),
filepath.Join(libcDir, "stdio", "getchar.c"),
filepath.Join(libcDir, "stdio", "getc_u.c"),
filepath.Join(libcDir, "stdio", "getchar_u.c"),
filepath.Join(libcDir, "stdio", "getdelim.c"),
filepath.Join(libcDir, "stdio", "getline.c"),
filepath.Join(libcDir, "stdio", "gets.c"),
filepath.Join(libcDir, "stdio", "makebuf.c"),
filepath.Join(libcDir, "stdio", "perror.c"),
filepath.Join(libcDir, "stdio", "printf.c"),
filepath.Join(libcDir, "stdio", "putc.c"),
filepath.Join(libcDir, "stdio", "putchar.c"),
filepath.Join(libcDir, "stdio", "putc_u.c"),
filepath.Join(libcDir, "stdio", "putchar_u.c"),
filepath.Join(libcDir, "stdio", "puts.c"),
filepath.Join(libcDir, "stdio", "refill.c"),
filepath.Join(libcDir, "stdio", "remove.c"),
filepath.Join(libcDir, "stdio", "rename.c"),
filepath.Join(libcDir, "stdio", "rewind.c"),
filepath.Join(libcDir, "stdio", "rget.c"),
filepath.Join(libcDir, "stdio", "scanf.c"),
filepath.Join(libcDir, "stdio", "sccl.c"),
filepath.Join(libcDir, "stdio", "setbuf.c"),
filepath.Join(libcDir, "stdio", "setbuffer.c"),
filepath.Join(libcDir, "stdio", "setlinebuf.c"),
filepath.Join(libcDir, "stdio", "setvbuf.c"),
filepath.Join(libcDir, "stdio", "snprintf.c"),
filepath.Join(libcDir, "stdio", "sprintf.c"),
filepath.Join(libcDir, "stdio", "sscanf.c"),
filepath.Join(libcDir, "stdio", "stdio.c"),
filepath.Join(libcDir, "stdio", "svfiwprintf.c"),
filepath.Join(libcDir, "stdio", "svfiwscanf.c"),
filepath.Join(libcDir, "stdio", "svfwprintf.c"),
filepath.Join(libcDir, "stdio", "svfwscanf.c"),
filepath.Join(libcDir, "stdio", "tmpfile.c"),
filepath.Join(libcDir, "stdio", "tmpnam.c"),
filepath.Join(libcDir, "stdio", "ungetc.c"),
filepath.Join(libcDir, "stdio", "vdprintf.c"),
filepath.Join(libcDir, "stdio", "vfiwprintf.c"),
filepath.Join(libcDir, "stdio", "vfiwscanf.c"),
filepath.Join(libcDir, "stdio", "vfwscanf.c"),
filepath.Join(libcDir, "stdio", "vprintf.c"),
filepath.Join(libcDir, "stdio", "vscanf.c"),
filepath.Join(libcDir, "stdio", "vsnprintf.c"),
filepath.Join(libcDir, "stdio", "vsprintf.c"),
filepath.Join(libcDir, "stdio", "vsscanf.c"),
filepath.Join(libcDir, "stdio", "wbuf.c"),
filepath.Join(libcDir, "stdio", "wsetup.c"),
filepath.Join(libcDir, "stdio", "asprintf.c"),
filepath.Join(libcDir, "stdio", "fcloseall.c"),
filepath.Join(libcDir, "stdio", "fseeko.c"),
filepath.Join(libcDir, "stdio", "ftello.c"),
filepath.Join(libcDir, "stdio", "getw.c"),
filepath.Join(libcDir, "stdio", "mktemp.c"),
filepath.Join(libcDir, "stdio", "putw.c"),
filepath.Join(libcDir, "stdio", "vasprintf.c"),
filepath.Join(libcDir, "stdio", "asnprintf.c"),
filepath.Join(libcDir, "stdio", "clearerr_u.c"),
filepath.Join(libcDir, "stdio", "dprintf.c"),
filepath.Join(libcDir, "stdio", "feof_u.c"),
filepath.Join(libcDir, "stdio", "ferror_u.c"),
filepath.Join(libcDir, "stdio", "fflush_u.c"),
filepath.Join(libcDir, "stdio", "fgetc_u.c"),
filepath.Join(libcDir, "stdio", "fgets_u.c"),
filepath.Join(libcDir, "stdio", "fgetwc.c"),
filepath.Join(libcDir, "stdio", "fgetwc_u.c"),
filepath.Join(libcDir, "stdio", "fgetws.c"),
filepath.Join(libcDir, "stdio", "fgetws_u.c"),
filepath.Join(libcDir, "stdio", "fileno_u.c"),
filepath.Join(libcDir, "stdio", "fmemopen.c"),
filepath.Join(libcDir, "stdio", "fopencookie.c"),
filepath.Join(libcDir, "stdio", "fpurge.c"),
filepath.Join(libcDir, "stdio", "fputc_u.c"),
filepath.Join(libcDir, "stdio", "fputs_u.c"),
filepath.Join(libcDir, "stdio", "fputwc.c"),
filepath.Join(libcDir, "stdio", "fputwc_u.c"),
filepath.Join(libcDir, "stdio", "fputws.c"),
filepath.Join(libcDir, "stdio", "fputws_u.c"),
filepath.Join(libcDir, "stdio", "fread_u.c"),
filepath.Join(libcDir, "stdio", "fsetlocking.c"),
filepath.Join(libcDir, "stdio", "funopen.c"),
filepath.Join(libcDir, "stdio", "fwide.c"),
filepath.Join(libcDir, "stdio", "fwprintf.c"),
filepath.Join(libcDir, "stdio", "fwrite_u.c"),
filepath.Join(libcDir, "stdio", "fwscanf.c"),
filepath.Join(libcDir, "stdio", "getwc.c"),
filepath.Join(libcDir, "stdio", "getwc_u.c"),
filepath.Join(libcDir, "stdio", "getwchar.c"),
filepath.Join(libcDir, "stdio", "getwchar_u.c"),
filepath.Join(libcDir, "stdio", "open_memstream.c"),
filepath.Join(libcDir, "stdio", "putwc.c"),
filepath.Join(libcDir, "stdio", "putwc_u.c"),
filepath.Join(libcDir, "stdio", "putwchar.c"),
filepath.Join(libcDir, "stdio", "putwchar_u.c"),
filepath.Join(libcDir, "stdio", "stdio_ext.c"),
filepath.Join(libcDir, "stdio", "swprintf.c"),
filepath.Join(libcDir, "stdio", "swscanf.c"),
filepath.Join(libcDir, "stdio", "ungetwc.c"),
filepath.Join(libcDir, "stdio", "vasnprintf.c"),
filepath.Join(libcDir, "stdio", "vswprintf.c"),
filepath.Join(libcDir, "stdio", "vswscanf.c"),
filepath.Join(libcDir, "stdio", "vwprintf.c"),
filepath.Join(libcDir, "stdio", "vwscanf.c"),
filepath.Join(libcDir, "stdio", "wprintf.c"),
filepath.Join(libcDir, "stdio", "wscanf.c"),
filepath.Join(libcDir, "string", "bcopy.c"),
filepath.Join(libcDir, "string", "bzero.c"),
filepath.Join(libcDir, "string", "explicit_bzero.c"),
filepath.Join(libcDir, "string", "ffsl.c"),
filepath.Join(libcDir, "string", "ffsll.c"),
filepath.Join(libcDir, "string", "fls.c"),
filepath.Join(libcDir, "string", "flsl.c"),
filepath.Join(libcDir, "string", "flsll.c"),
filepath.Join(libcDir, "string", "index.c"),
filepath.Join(libcDir, "string", "memchr.c"),
filepath.Join(libcDir, "string", "memcmp.c"),
filepath.Join(libcDir, "string", "memmove.c"),
filepath.Join(libcDir, "string", "rindex.c"),
filepath.Join(libcDir, "string", "strcasecmp.c"),
filepath.Join(libcDir, "string", "strcat.c"),
filepath.Join(libcDir, "string", "strchr.c"),
filepath.Join(libcDir, "string", "strcoll.c"),
filepath.Join(libcDir, "string", "strcspn.c"),
filepath.Join(libcDir, "string", "strdup.c"),
filepath.Join(libcDir, "string", "strdup_r.c"),
filepath.Join(libcDir, "string", "strerror.c"),
filepath.Join(libcDir, "string", "strerror_r.c"),
filepath.Join(libcDir, "string", "strlcat.c"),
filepath.Join(libcDir, "string", "strlcpy.c"),
filepath.Join(libcDir, "string", "strlwr.c"),
filepath.Join(libcDir, "string", "strncasecmp.c"),
filepath.Join(libcDir, "string", "strncat.c"),
filepath.Join(libcDir, "string", "strncmp.c"),
filepath.Join(libcDir, "string", "strnlen.c"),
filepath.Join(libcDir, "string", "strnstr.c"),
filepath.Join(libcDir, "string", "strpbrk.c"),
filepath.Join(libcDir, "string", "strrchr.c"),
filepath.Join(libcDir, "string", "strsep.c"),
filepath.Join(libcDir, "string", "strsignal.c"),
filepath.Join(libcDir, "string", "strspn.c"),
filepath.Join(libcDir, "string", "strtok.c"),
filepath.Join(libcDir, "string", "strtok_r.c"),
filepath.Join(libcDir, "string", "strupr.c"),
filepath.Join(libcDir, "string", "strxfrm.c"),
filepath.Join(libcDir, "string", "strstr.c"),
filepath.Join(libcDir, "string", "swab.c"),
filepath.Join(libcDir, "string", "timingsafe_bcmp.c"),
filepath.Join(libcDir, "string", "timingsafe_memcmp.c"),
filepath.Join(libcDir, "string", "u_strerr.c"),
filepath.Join(libcDir, "string", "wcscat.c"),
filepath.Join(libcDir, "string", "wcschr.c"),
filepath.Join(libcDir, "string", "wcscmp.c"),
filepath.Join(libcDir, "string", "wcscoll.c"),
filepath.Join(libcDir, "string", "wcscpy.c"),
filepath.Join(libcDir, "string", "wcscspn.c"),
filepath.Join(libcDir, "string", "wcslcat.c"),
filepath.Join(libcDir, "string", "wcslcpy.c"),
filepath.Join(libcDir, "string", "wcslen.c"),
filepath.Join(libcDir, "string", "wcsncat.c"),
filepath.Join(libcDir, "string", "wcsncmp.c"),
filepath.Join(libcDir, "string", "wcsncpy.c"),
filepath.Join(libcDir, "string", "wcsnlen.c"),
filepath.Join(libcDir, "string", "wcspbrk.c"),
filepath.Join(libcDir, "string", "wcsrchr.c"),
filepath.Join(libcDir, "string", "wcsspn.c"),
filepath.Join(libcDir, "string", "wcsstr.c"),
filepath.Join(libcDir, "string", "wcstok.c"),
filepath.Join(libcDir, "string", "wcswidth.c"),
filepath.Join(libcDir, "string", "wcsxfrm.c"),
filepath.Join(libcDir, "string", "wcwidth.c"),
filepath.Join(libcDir, "string", "wmemchr.c"),
filepath.Join(libcDir, "string", "wmemcmp.c"),
filepath.Join(libcDir, "string", "wmemcpy.c"),
filepath.Join(libcDir, "string", "wmemmove.c"),
filepath.Join(libcDir, "string", "wmemset.c"),
filepath.Join(libcDir, "string", "xpg_strerror_r.c"),
filepath.Join(libcDir, "string", "bcmp.c"),
filepath.Join(libcDir, "string", "memccpy.c"),
filepath.Join(libcDir, "string", "mempcpy.c"),
filepath.Join(libcDir, "string", "stpcpy.c"),
filepath.Join(libcDir, "string", "stpncpy.c"),
filepath.Join(libcDir, "string", "strndup.c"),
filepath.Join(libcDir, "string", "strcasestr.c"),
filepath.Join(libcDir, "string", "strchrnul.c"),
filepath.Join(libcDir, "string", "strndup_r.c"),
filepath.Join(libcDir, "string", "wcpcpy.c"),
filepath.Join(libcDir, "string", "wcpncpy.c"),
filepath.Join(libcDir, "string", "wcsdup.c"),
filepath.Join(libcDir, "string", "gnu_basename.c"),
filepath.Join(libcDir, "string", "memmem.c"),
filepath.Join(libcDir, "string", "memrchr.c"),
filepath.Join(libcDir, "string", "rawmemchr.c"),
filepath.Join(libcDir, "string", "strcasecmp_l.c"),
filepath.Join(libcDir, "string", "strcoll_l.c"),
filepath.Join(libcDir, "string", "strncasecmp_l.c"),
filepath.Join(libcDir, "string", "strverscmp.c"),
filepath.Join(libcDir, "string", "strxfrm_l.c"),
filepath.Join(libcDir, "string", "wcscasecmp.c"),
filepath.Join(libcDir, "string", "wcscasecmp_l.c"),
filepath.Join(libcDir, "string", "wcscoll_l.c"),
filepath.Join(libcDir, "string", "wcsncasecmp.c"),
filepath.Join(libcDir, "string", "wcsncasecmp_l.c"),
filepath.Join(libcDir, "string", "wcsxfrm_l.c"),
filepath.Join(libcDir, "string", "wmempcpy.c"),
filepath.Join(libcDir, "signal", "psignal.c"),
filepath.Join(libcDir, "signal", "raise.c"),
filepath.Join(libcDir, "signal", "signal.c"),
filepath.Join(libcDir, "signal", "sig2str.c"),
filepath.Join(libcDir, "time", "asctime.c"),
filepath.Join(libcDir, "time", "asctime_r.c"),
filepath.Join(libcDir, "time", "clock.c"),
filepath.Join(libcDir, "time", "ctime.c"),
filepath.Join(libcDir, "time", "ctime_r.c"),
filepath.Join(libcDir, "time", "difftime.c"),
filepath.Join(libcDir, "time", "gettzinfo.c"),
filepath.Join(libcDir, "time", "gmtime.c"),
filepath.Join(libcDir, "time", "gmtime_r.c"),
filepath.Join(libcDir, "time", "lcltime.c"),
filepath.Join(libcDir, "time", "lcltime_r.c"),
filepath.Join(libcDir, "time", "mktime.c"),
filepath.Join(libcDir, "time", "month_lengths.c"),
filepath.Join(libcDir, "time", "strftime.c"),
filepath.Join(libcDir, "time", "strptime.c"),
filepath.Join(libcDir, "time", "time.c"),
filepath.Join(libcDir, "time", "tzcalc_limits.c"),
filepath.Join(libcDir, "time", "tzlock.c"),
filepath.Join(libcDir, "time", "tzset.c"),
filepath.Join(libcDir, "time", "tzset_r.c"),
filepath.Join(libcDir, "time", "tzvars.c"),
filepath.Join(libcDir, "time", "wcsftime.c"),
filepath.Join(libcDir, "locale", "locale.c"),
filepath.Join(libcDir, "locale", "localeconv.c"),
filepath.Join(libcDir, "locale", "duplocale.c"),
filepath.Join(libcDir, "locale", "freelocale.c"),
filepath.Join(libcDir, "locale", "lctype.c"),
filepath.Join(libcDir, "locale", "lmessages.c"),
filepath.Join(libcDir, "locale", "lnumeric.c"),
filepath.Join(libcDir, "locale", "lmonetary.c"),
filepath.Join(libcDir, "locale", "newlocale.c"),
filepath.Join(libcDir, "locale", "nl_langinfo.c"),
filepath.Join(libcDir, "locale", "timelocal.c"),
filepath.Join(libcDir, "locale", "uselocale.c"),
filepath.Join(libcDir, "reent", "closer.c"),
filepath.Join(libcDir, "reent", "reent.c"),
filepath.Join(libcDir, "reent", "impure.c"),
filepath.Join(libcDir, "reent", "fcntlr.c"),
filepath.Join(libcDir, "reent", "fstatr.c"),
filepath.Join(libcDir, "reent", "getentropyr.c"),
filepath.Join(libcDir, "reent", "getreent.c"),
filepath.Join(libcDir, "reent", "gettimeofdayr.c"),
filepath.Join(libcDir, "reent", "isattyr.c"),
filepath.Join(libcDir, "reent", "linkr.c"),
filepath.Join(libcDir, "reent", "lseekr.c"),
filepath.Join(libcDir, "reent", "mkdirr.c"),
filepath.Join(libcDir, "reent", "openr.c"),
filepath.Join(libcDir, "reent", "readr.c"),
filepath.Join(libcDir, "reent", "renamer.c"),
filepath.Join(libcDir, "reent", "signalr.c"),
filepath.Join(libcDir, "reent", "signgam.c"),
filepath.Join(libcDir, "reent", "sbrkr.c"),
filepath.Join(libcDir, "reent", "statr.c"),
filepath.Join(libcDir, "reent", "timesr.c"),
filepath.Join(libcDir, "reent", "unlinkr.c"),
filepath.Join(libcDir, "reent", "writer.c"),
filepath.Join(libcDir, "reent", "execr.c"),
filepath.Join(libcDir, "errno", "errno.c"),
filepath.Join(libcDir, "misc", "__dprintf.c"),
filepath.Join(libcDir, "misc", "unctrl.c"),
filepath.Join(libcDir, "misc", "ffs.c"),
filepath.Join(libcDir, "misc", "init.c"),
filepath.Join(libcDir, "misc", "fini.c"),
filepath.Join(libcDir, "misc", "lock.c"),
filepath.Join(libcDir, "posix", "closedir.c"),
filepath.Join(libcDir, "posix", "collate.c"),
filepath.Join(libcDir, "posix", "collcmp.c"),
filepath.Join(libcDir, "posix", "creat.c"),
filepath.Join(libcDir, "posix", "dirfd.c"),
// filepath.Join(libcDir, "posix", "fnmatch.c"),
filepath.Join(libcDir, "posix", "glob.c"),
filepath.Join(libcDir, "posix", "opendir.c"),
filepath.Join(libcDir, "posix", "readdir.c"),
filepath.Join(libcDir, "posix", "readdir_r.c"),
filepath.Join(libcDir, "posix", "regcomp.c"),
filepath.Join(libcDir, "posix", "regerror.c"),
filepath.Join(libcDir, "posix", "regexec.c"),
filepath.Join(libcDir, "posix", "regfree.c"),
filepath.Join(libcDir, "posix", "rewinddir.c"),
filepath.Join(libcDir, "posix", "sleep.c"),
filepath.Join(libcDir, "posix", "usleep.c"),
filepath.Join(libcDir, "posix", "telldir.c"),
filepath.Join(libcDir, "posix", "ftw.c"),
filepath.Join(libcDir, "posix", "nftw.c"),
filepath.Join(libcDir, "posix", "scandir.c"),
filepath.Join(libcDir, "posix", "seekdir.c"),
filepath.Join(libcDir, "posix", "execl.c"),
filepath.Join(libcDir, "posix", "execle.c"),
filepath.Join(libcDir, "posix", "execlp.c"),
filepath.Join(libcDir, "posix", "execv.c"),
filepath.Join(libcDir, "posix", "execve.c"),
filepath.Join(libcDir, "posix", "execvp.c"),
filepath.Join(libcDir, "posix", "wordexp.c"),
filepath.Join(libcDir, "posix", "wordfree.c"),
filepath.Join(libcDir, "posix", "popen.c"),
filepath.Join(libcDir, "posix", "posix_spawn.c"),
filepath.Join(libcDir, "syscalls", "sysclose.c"),
filepath.Join(libcDir, "syscalls", "sysfcntl.c"),
filepath.Join(libcDir, "syscalls", "sysfstat.c"),
filepath.Join(libcDir, "syscalls", "sysgetentropy.c"),
filepath.Join(libcDir, "syscalls", "sysgetpid.c"),
filepath.Join(libcDir, "syscalls", "sysgettod.c"),
filepath.Join(libcDir, "syscalls", "sysisatty.c"),
filepath.Join(libcDir, "syscalls", "syskill.c"),
filepath.Join(libcDir, "syscalls", "syslink.c"),
filepath.Join(libcDir, "syscalls", "syslseek.c"),
filepath.Join(libcDir, "syscalls", "sysopen.c"),
filepath.Join(libcDir, "syscalls", "sysread.c"),
filepath.Join(libcDir, "syscalls", "syssbrk.c"),
filepath.Join(libcDir, "syscalls", "sysstat.c"),
filepath.Join(libcDir, "syscalls", "systimes.c"),
filepath.Join(libcDir, "syscalls", "sysunlink.c"),
filepath.Join(libcDir, "syscalls", "syswrite.c"),
filepath.Join(libcDir, "syscalls", "sysexecve.c"),
filepath.Join(libcDir, "syscalls", "sysfork.c"),
filepath.Join(libcDir, "syscalls", "syswait.c"),
filepath.Join(libcDir, "iconv", "ces", "utf-8.c"),
filepath.Join(libcDir, "iconv", "ces", "utf-16.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-2.c"),
filepath.Join(libcDir, "iconv", "ces", "us-ascii.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-4.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-2-internal.c"),
filepath.Join(libcDir, "iconv", "ces", "ucs-4-internal.c"),
filepath.Join(libcDir, "iconv", "ces", "cesbi.c"),
filepath.Join(libcDir, "iconv", "ces", "table.c"),
filepath.Join(libcDir, "iconv", "ces", "table-pcs.c"),
filepath.Join(libcDir, "iconv", "ces", "euc.c"),
filepath.Join(libcDir, "iconv", "ccs", "ccsbi.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_10.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_13.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_14.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_15.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_1.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_2.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_3.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_4.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_5.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_6.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_7.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_8.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_9.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_8859_11.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1250.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1252.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1254.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1256.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1258.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1251.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1253.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1255.c"),
filepath.Join(libcDir, "iconv", "ccs", "win_1257.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_r.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_u.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_ru.c"),
filepath.Join(libcDir, "iconv", "ccs", "koi8_uni.c"),
filepath.Join(libcDir, "iconv", "ccs", "iso_ir_111.c"),
filepath.Join(libcDir, "iconv", "ccs", "big5.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp775.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp850.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp852.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp855.c"),
filepath.Join(libcDir, "iconv", "ccs", "cp866.c"),
filepath.Join(libcDir, "iconv", "ccs", "jis_x0212_1990.c"),
filepath.Join(libcDir, "iconv", "ccs", "jis_x0201_1976.c"),
filepath.Join(libcDir, "iconv", "ccs", "jis_x0208_1990.c"),
filepath.Join(libcDir, "iconv", "ccs", "ksx1001.c"),
filepath.Join(libcDir, "iconv", "ccs", "cns11643_plane1.c"),
filepath.Join(libcDir, "iconv", "ccs", "cns11643_plane2.c"),
filepath.Join(libcDir, "iconv", "ccs", "cns11643_plane14.c"),
filepath.Join(libcDir, "iconv", "lib", "aliasesi.c"),
filepath.Join(libcDir, "iconv", "lib", "ucsconv.c"),
filepath.Join(libcDir, "iconv", "lib", "nullconv.c"),
filepath.Join(libcDir, "iconv", "lib", "iconv.c"),
filepath.Join(libcDir, "iconv", "lib", "aliasesbi.c"),
filepath.Join(libcDir, "iconv", "lib", "iconvnls.c"),
filepath.Join(libcDir, "ssp", "chk_fail.c"),
filepath.Join(libcDir, "ssp", "stack_protector.c"),
filepath.Join(libcDir, "ssp", "memcpy_chk.c"),
filepath.Join(libcDir, "ssp", "memmove_chk.c"),
filepath.Join(libcDir, "ssp", "mempcpy_chk.c"),
filepath.Join(libcDir, "ssp", "memset_chk.c"),
filepath.Join(libcDir, "ssp", "stpcpy_chk.c"),
filepath.Join(libcDir, "ssp", "stpncpy_chk.c"),
filepath.Join(libcDir, "ssp", "strcat_chk.c"),
filepath.Join(libcDir, "ssp", "strcpy_chk.c"),
filepath.Join(libcDir, "ssp", "strncat_chk.c"),
filepath.Join(libcDir, "ssp", "strncpy_chk.c"),
filepath.Join(libcDir, "ssp", "gets_chk.c"),
filepath.Join(libcDir, "ssp", "snprintf_chk.c"),
filepath.Join(libcDir, "ssp", "sprintf_chk.c"),
filepath.Join(libcDir, "ssp", "vsnprintf_chk.c"),
filepath.Join(libcDir, "ssp", "vsprintf_chk.c"),
// TODO(MeteorsLiu): support riscv
filepath.Join(libcDir, "machine", "xtensa", "memcpy.S"),
filepath.Join(libcDir, "machine", "xtensa", "memset.S"),
filepath.Join(libcDir, "machine", "xtensa", "setjmp.S"),
filepath.Join(libcDir, "machine", "xtensa", "strcmp.S"),
filepath.Join(libcDir, "machine", "xtensa", "strcpy.S"),
filepath.Join(libcDir, "machine", "xtensa", "strlen.S"),
filepath.Join(libcDir, "machine", "xtensa", "strncpy.S"),
},
CFlags: []string{
"-DHAVE_CONFIG_H",
"-D_LIBC",
"-D__NO_SYSCALLS__",
"-D_NO_GLOB",
"-D_NO_EXECVE",
"-D_NO_GETLOGIN",
"-D_NO_GETPWENT",
"-D_NO_GETUT",
"-D_NO_GETPASS",
"-D_NO_SIGSET",
"-D_NO_WORDEXP",
"-D_NO_POPEN",
"-D_NO_POSIX_SPAWN",
"-DHAVE_FCNTL",
"-DHAVE_BLKSIZE",
"-DHAVE_OPENDIR",
"-DHAVE_RENAME",
"-DGETREENT_PROVIDED",
"-DSIGNAL_PROVIDED",
"-D__ESP__",
"-isystem" + filepath.Join(libcDir, "include"),
"-I" + filepath.Join(baseDir, "newlib"),
"-I" + libcDir,
"-I" + filepath.Join(libcDir, "xtensa"),
"-I" + filepath.Join(baseDir, "libgloss"),
// TODO(MeteorsLiu): support riscv
"-idirafter" + filepath.Join(baseDir, "include"),
"-I" + filepath.Join(libcDir, "ssp"),
"-I" + filepath.Join(libcDir, "locale"),
"-I" + filepath.Join(libcDir, "errno"),
"-I" + filepath.Join(libcDir, "syscalls"),
"-I" + filepath.Join(libcDir, "iconv", "lib"),
"-I" + filepath.Join(libcDir, "argz"),
"-I" + filepath.Join(libcDir, "stdio"),
"-I" + filepath.Join(libcDir, "iconv", "ccs"),
"-I" + filepath.Join(libcDir, "ctype"),
"-I" + filepath.Join(libcDir, "signal"),
"-I" + filepath.Join(libcDir, "time"),
"-I" + filepath.Join(libcDir, "reent"),
"-I" + filepath.Join(libcDir, "machine", "xtensa", "include"),
"-I" + filepath.Join(libcDir, "string"),
"-I" + filepath.Join(libcDir, "iconv", "ces"),
"-I" + filepath.Join(libcDir, "search"),
"-I" + filepath.Join(libcDir, "misc"),
"-I" + filepath.Join(libcDir, "posix"),
"-I" + filepath.Join(libcDir, "stdlib"),
},
LDFlags: _libcLDFlags,
CCFlags: withDefaultCCFlags([]string{
"-fno-builtin",
"-Wno-implicit-function-declaration",
"-Wno-int-conversion",
"-Wno-unused-command-line-argument",
}),
},
},
}
}
// getNewlibESP32Config returns configuration for newlib esp32
func GetNewlibESP32Config(baseDir, target, mcpu string) *compile.CompileConfig {
if strings.Contains(target, "riscv32") {
return getNewlibESP32ConfigRISCV(baseDir, target)
}
return getNewlibESP32ConfigXtensa(baseDir, target)
}