mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 18:47:15 +02:00
This achieves two things: - Programs can now intentionally perform arbitrary syscalls by calling syscall(). This allows us to work on things like syscall fuzzing. - It restricts the ability of userspace to make syscalls to a single 4KB page of code. In order to call the kernel directly, an attacker must now locate this page and call through it.
91 lines
2.0 KiB
CMake
91 lines
2.0 KiB
CMake
set(LIBC_SOURCES
|
|
arpa/inet.cpp
|
|
assert.cpp
|
|
ctype.cpp
|
|
cxxabi.cpp
|
|
dirent.cpp
|
|
dlfcn.cpp
|
|
fcntl.cpp
|
|
getopt.cpp
|
|
grp.cpp
|
|
ioctl.cpp
|
|
libcinit.cpp
|
|
libgen.cpp
|
|
locale.cpp
|
|
malloc.cpp
|
|
mman.cpp
|
|
mntent.cpp
|
|
netdb.cpp
|
|
poll.cpp
|
|
pwd.cpp
|
|
qsort.cpp
|
|
scanf.cpp
|
|
sched.cpp
|
|
serenity.cpp
|
|
setjmp.S
|
|
signal.cpp
|
|
spawn.cpp
|
|
stat.cpp
|
|
stdio.cpp
|
|
stdlib.cpp
|
|
string.cpp
|
|
strings.cpp
|
|
syslog.cpp
|
|
sys/prctl.cpp
|
|
sys/ptrace.cpp
|
|
sys/select.cpp
|
|
sys/socket.cpp
|
|
sys/uio.cpp
|
|
sys/wait.cpp
|
|
termcap.cpp
|
|
termios.cpp
|
|
time.cpp
|
|
times.cpp
|
|
ulimit.cpp
|
|
unistd.cpp
|
|
utime.cpp
|
|
utsname.cpp
|
|
wchar.cpp
|
|
)
|
|
|
|
file(GLOB AK_SOURCES CONFIGURE_DEPENDS "../../../AK/*.cpp")
|
|
file(GLOB ELF_SOURCES CONFIGURE_DEPENDS "../LibELF/*.cpp")
|
|
set(ELF_SOURCES ${ELF_SOURCES} ../LibELF/Arch/i386/plt_trampoline.S)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -DSERENITY_LIBC_BUILD")
|
|
|
|
find_program(INSTALL_COMMAND ginstall)
|
|
if(NOT INSTALL_COMMAND)
|
|
set(INSTALL_COMMAND install)
|
|
endif()
|
|
|
|
add_library(crt0 STATIC crt0.cpp)
|
|
add_custom_command(
|
|
TARGET crt0
|
|
COMMAND ${INSTALL_COMMAND} -D $<TARGET_OBJECTS:crt0> ${CMAKE_INSTALL_PREFIX}/usr/lib/crt0.o
|
|
)
|
|
add_library(crt0_shared STATIC crt0_shared.cpp)
|
|
add_custom_command(
|
|
TARGET crt0_shared
|
|
COMMAND ${INSTALL_COMMAND} -D $<TARGET_OBJECTS:crt0_shared> ${CMAKE_INSTALL_PREFIX}/usr/lib/crt0_shared.o
|
|
)
|
|
|
|
set_source_files_properties (ssp.cpp PROPERTIES COMPILE_FLAGS
|
|
"-fno-stack-protector")
|
|
add_library(ssp STATIC ssp.cpp)
|
|
add_custom_command(
|
|
TARGET ssp
|
|
COMMAND ${INSTALL_COMMAND} -D $<TARGET_OBJECTS:ssp> ${CMAKE_INSTALL_PREFIX}/usr/lib/ssp.o
|
|
)
|
|
|
|
set(SOURCES ${LIBC_SOURCES} ${AK_SOURCES} ${ELF_SOURCES})
|
|
|
|
serenity_libc_static(LibCStatic c)
|
|
target_link_libraries(LibCStatic crt0 ssp system)
|
|
add_dependencies(LibCStatic LibM LibSystem)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++")
|
|
serenity_libc(LibC c)
|
|
target_link_libraries(LibC crt0 ssp system)
|
|
add_dependencies(LibC LibM LibSystem)
|