diff options
author | Andrew Kaster <andrewdkaster@gmail.com> | 2020-05-18 18:54:51 -0600 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-05-20 08:37:50 +0200 |
commit | c1eb744ff0a82cf6c8e3470ac10e2f417c7d9de2 (patch) | |
tree | 02aca2ec7136f8ceb24221506aedffb80e62aa4f | |
parent | cdbbe14062ea49f9a9d9b0e5627aba9efd07659a (diff) | |
download | serenity-c1eb744ff0a82cf6c8e3470ac10e2f417c7d9de2.zip |
Build: Include headers from LibC, LibM, and LibPthread with -isystem
Make sure that userspace is always referencing "system" headers in a way
that would build on target :). This means removing the explicit
include_directories of Libraries/LibC in favor of having it export its
headers as SYSTEM. Also remove a redundant include_directories of
Libraries in the 'serenity build' part of the build script. It's already
set at the top.
This causes issues for the Kernel, and for crt0.o. These special cases
are handled individually.
-rw-r--r-- | Applications/Debugger/main.cpp | 2 | ||||
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | Kernel/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Libraries/LibC/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Libraries/LibDebug/DebugSession.h | 2 | ||||
-rw-r--r-- | Libraries/LibM/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Libraries/LibM/math.cpp | 4 | ||||
-rw-r--r-- | Libraries/LibPthread/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Userland/functrace.cpp | 2 | ||||
-rw-r--r-- | Userland/strace.cpp | 2 | ||||
-rw-r--r-- | Userland/test-crypto.cpp | 2 |
11 files changed, 15 insertions, 10 deletions
diff --git a/Applications/Debugger/main.cpp b/Applications/Debugger/main.cpp index 893126d6e2..3bba792f57 100644 --- a/Applications/Debugger/main.cpp +++ b/Applications/Debugger/main.cpp @@ -30,7 +30,6 @@ #include <AK/LogStream.h> #include <AK/StringBuilder.h> #include <AK/kmalloc.h> -#include <LibC/sys/arch/i386/regs.h> #include <LibCore/File.h> #include <LibDebug/DebugInfo.h> #include <LibDebug/DebugSession.h> @@ -41,6 +40,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/arch/i386/regs.h> #include <unistd.h> static Line::Editor editor {}; diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d0acb5f54..3ea505f9b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ function(serenity_libc target_name fs_name) add_library(${target_name} ${SOURCES}) install(TARGETS ${target_name} ARCHIVE DESTINATION usr/lib) set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${fs_name}) + target_include_directories(${target_name} SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_directories(LibC PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) endfunction() @@ -101,8 +102,9 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Os -Wno-sized-deallocation -fno-sized-d set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG -DSANITIZE_PTRS") add_link_options(--sysroot ${CMAKE_BINARY_DIR}/Root) -include_directories(Libraries/LibC) +# Source directory relative service headers include_directories(Services) +# Generated Service/Library Headers include_directories(${CMAKE_CURRENT_BINARY_DIR}/Services) include_directories(${CMAKE_CURRENT_BINARY_DIR}/Libraries) diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index 6ef6d24296..f6684df8ce 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -161,6 +161,9 @@ if (${CMAKE_HOST_SYSTEM_NAME} MATCHES SerenityOS) else() include_directories(../Toolchain/Local/i686-pc-serenity/include/c++/10.1.0/) include_directories(../Toolchain/Local/i686-pc-serenity/include/c++/10.1.0/i686-pc-serenity/) + # FIXME: Many files include <LibC/sys/ioctl_numbers.h> and <LibC/errno_numbers.h> + # With -nostdinc, this makes it interesting to include these headers properly + include_directories(../Libraries/LibC) endif() add_executable(Kernel ${SOURCES}) diff --git a/Libraries/LibC/CMakeLists.txt b/Libraries/LibC/CMakeLists.txt index d5e94d1b96..feee96aa97 100644 --- a/Libraries/LibC/CMakeLists.txt +++ b/Libraries/LibC/CMakeLists.txt @@ -52,6 +52,8 @@ file(GLOB ELF_SOURCES "../LibELF/*.cpp") set(ELF_SOURCES ${ELF_SOURCES} ../LibELF/Arch/i386/plt_trampoline.S) add_library(crt0 STATIC crt0.cpp) +# We need include headers from LibC in crt0. namely, <assert.h> +target_include_directories(crt0 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) add_custom_command( TARGET crt0 COMMAND install -D $<TARGET_OBJECTS:crt0> ${CMAKE_INSTALL_PREFIX}/usr/lib/crt0.o diff --git a/Libraries/LibDebug/DebugSession.h b/Libraries/LibDebug/DebugSession.h index 20a549f777..95687926c3 100644 --- a/Libraries/LibDebug/DebugSession.h +++ b/Libraries/LibDebug/DebugSession.h @@ -33,11 +33,11 @@ #include <AK/Optional.h> #include <AK/OwnPtr.h> #include <AK/String.h> -#include <LibC/sys/arch/i386/regs.h> #include <LibDebug/DebugInfo.h> #include <LibELF/Loader.h> #include <signal.h> #include <stdio.h> +#include <sys/arch/i386/regs.h> #include <sys/ptrace.h> #include <sys/wait.h> #include <unistd.h> diff --git a/Libraries/LibM/CMakeLists.txt b/Libraries/LibM/CMakeLists.txt index 7ed9959738..c9bf4dd655 100644 --- a/Libraries/LibM/CMakeLists.txt +++ b/Libraries/LibM/CMakeLists.txt @@ -3,5 +3,4 @@ set(SOURCES ) serenity_libc(LibM m) -target_include_directories(LibM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(LibM LibC) diff --git a/Libraries/LibM/math.cpp b/Libraries/LibM/math.cpp index 021993e9d4..26e9642296 100644 --- a/Libraries/LibM/math.cpp +++ b/Libraries/LibM/math.cpp @@ -24,8 +24,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <LibC/assert.h> -#include <LibM/math.h> +#include <assert.h> +#include <math.h> #include <stdint.h> #include <stdlib.h> diff --git a/Libraries/LibPthread/CMakeLists.txt b/Libraries/LibPthread/CMakeLists.txt index 7a668f0684..3fd2e1d702 100644 --- a/Libraries/LibPthread/CMakeLists.txt +++ b/Libraries/LibPthread/CMakeLists.txt @@ -4,4 +4,3 @@ set(SOURCES serenity_libc(LibPthread pthread) target_link_libraries(LibPthread LibC) -target_include_directories(LibPthread PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/Userland/functrace.cpp b/Userland/functrace.cpp index 877a7aa601..4e30d12fd8 100644 --- a/Userland/functrace.cpp +++ b/Userland/functrace.cpp @@ -33,7 +33,6 @@ #include <AK/StringBuilder.h> #include <AK/kmalloc.h> #include <Kernel/Syscall.h> -#include <LibC/sys/arch/i386/regs.h> #include <LibCore/File.h> #include <LibDebug/DebugSession.h> #include <LibELF/Image.h> @@ -44,6 +43,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/arch/i386/regs.h> #include <unistd.h> static int usage() diff --git a/Userland/strace.cpp b/Userland/strace.cpp index b6687cfa58..58e018d575 100644 --- a/Userland/strace.cpp +++ b/Userland/strace.cpp @@ -28,11 +28,11 @@ #include <AK/LogStream.h> #include <AK/Types.h> #include <Kernel/Syscall.h> -#include <LibC/sys/arch/i386/regs.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/arch/i386/regs.h> #include <sys/ptrace.h> #include <sys/wait.h> #include <unistd.h> diff --git a/Userland/test-crypto.cpp b/Userland/test-crypto.cpp index 4f22de89c1..2b0fb8b9f5 100644 --- a/Userland/test-crypto.cpp +++ b/Userland/test-crypto.cpp @@ -24,7 +24,6 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <LibC/limits.h> #include <LibCore/ArgsParser.h> #include <LibCore/EventLoop.h> #include <LibCore/File.h> @@ -37,6 +36,7 @@ #include <LibCrypto/PK/RSA.h> #include <LibLine/Editor.h> #include <LibTLS/TLSv12.h> +#include <limits.h> #include <stdio.h> #include <time.h> |