diff options
Diffstat (limited to 'lib/mlibc/sysdeps/linux/meson.build')
-rw-r--r-- | lib/mlibc/sysdeps/linux/meson.build | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/lib/mlibc/sysdeps/linux/meson.build b/lib/mlibc/sysdeps/linux/meson.build new file mode 100644 index 0000000..0809237 --- /dev/null +++ b/lib/mlibc/sysdeps/linux/meson.build @@ -0,0 +1,143 @@ +rtdl_dso_sources += files( + host_machine.cpu_family() / 'arch-syscall.cpp', + 'generic/sysdeps.cpp', +) + +linux_include_dirs = [ + include_directories(host_machine.cpu_family()), + include_directories('include-internal/'), +] + +rtdl_include_dirs += linux_include_dirs +libc_include_dirs += linux_include_dirs +libc_sources += files( + host_machine.cpu_family() / 'signals.S', + host_machine.cpu_family() / 'arch-syscall.cpp', + 'generic/entry.cpp', + 'generic/sysdeps.cpp', +) + +if not disable_posix_option + libc_sources += files( + 'generic/thread.cpp', + host_machine.cpu_family() / 'cp_syscall.S', + host_machine.cpu_family() / 'thread_entry.S' + ) +endif + +if not no_headers + install_headers( + 'include/abi-bits/auxv.h', + 'include/abi-bits/seek-whence.h', + 'include/abi-bits/vm-flags.h', + 'include/abi-bits/errno.h', + 'include/abi-bits/fcntl.h', + 'include/abi-bits/in.h', + 'include/abi-bits/stat.h', + 'include/abi-bits/signal.h', + 'include/abi-bits/reboot.h', + 'include/abi-bits/resource.h', + 'include/abi-bits/socket.h', + 'include/abi-bits/termios.h', + 'include/abi-bits/time.h', + 'include/abi-bits/blkcnt_t.h', + 'include/abi-bits/blksize_t.h', + 'include/abi-bits/dev_t.h', + 'include/abi-bits/gid_t.h', + 'include/abi-bits/ino_t.h', + 'include/abi-bits/mode_t.h', + 'include/abi-bits/nlink_t.h', + 'include/abi-bits/pid_t.h', + 'include/abi-bits/uid_t.h', + 'include/abi-bits/access.h', + 'include/abi-bits/wait.h', + 'include/abi-bits/limits.h', + 'include/abi-bits/utsname.h', + 'include/abi-bits/ptrace.h', + 'include/abi-bits/vt.h', + 'include/abi-bits/ptrace.h', + 'include/abi-bits/poll.h', + 'include/abi-bits/epoll.h', + 'include/abi-bits/packet.h', + 'include/abi-bits/inotify.h', + 'include/abi-bits/clockid_t.h', + 'include/abi-bits/shm.h', + 'include/abi-bits/mqueue.h', + 'include/abi-bits/suseconds_t.h', + 'include/abi-bits/fsfilcnt_t.h', + 'include/abi-bits/fsblkcnt_t.h', + 'include/abi-bits/socklen_t.h', + 'include/abi-bits/statfs.h', + 'include/abi-bits/statvfs.h', + 'include/abi-bits/ioctls.h', + 'include/abi-bits/xattr.h', + 'include/abi-bits/msg.h', + subdir: 'abi-bits', + follow_symlinks: true + ) + + install_headers('include/syscall.h') + install_headers('include/sys/syscall.h', subdir: 'sys') + install_headers( + 'include/bits/syscall.h', + 'include/bits/syscall_aliases.h', + subdir: 'bits' + ) +endif + +if not headers_only + crt = custom_target('crt1', + build_by_default: true, + command: c_compiler.cmd_array() + ['-c', '-o', '@OUTPUT@', '@INPUT@'], + input: host_machine.cpu_family() / 'crt-src/crt1.S', + output: 'crt1.o', + install: true, + install_dir: get_option('libdir') + ) + + crt_pie = custom_target('Scrt1', + build_by_default: true, + command: c_compiler.cmd_array() + ['-fPIE', '-c', '-o', '@OUTPUT@', '@INPUT@'], + input: host_machine.cpu_family() / 'crt-src/Scrt1.S', + output: 'Scrt1.o', + install: true, + install_dir: get_option('libdir') + ) + + custom_target('crti', + build_by_default: true, + command: c_compiler.cmd_array() + ['-c', '-o', '@OUTPUT@', '@INPUT@'], + input: host_machine.cpu_family() / 'crt-src/crti.S', + output: 'crti.o', + install: true, + install_dir: get_option('libdir') + ) + + custom_target('crtn', + build_by_default: true, + command: c_compiler.cmd_array() + ['-c', '-o', '@OUTPUT@', '@INPUT@'], + input: host_machine.cpu_family() / 'crt-src/crtn.S', + output: 'crtn.o', + install: true, + install_dir: get_option('libdir') + ) + + wrapper_conf = configuration_data() + wrapper_conf.set('LIBDIR', get_option('libdir')) + wrapper_conf.set('PREFIX', get_option('prefix')) + specs = configure_file(input: 'mlibc-gcc.specs.in', + output: 'mlibc-gcc.specs', + configuration: wrapper_conf) + + wrapper_script = configure_file(input: 'mlibc-gcc.in', + output: 'mlibc-gcc', + configuration: wrapper_conf) + + install_data(specs, + install_dir: get_option('libdir') + ) + + install_data(wrapper_script, + install_dir: get_option('bindir') + ) +endif |