summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kaster <andrewdkaster@gmail.com>2020-05-18 18:54:51 -0600
committerAndreas Kling <kling@serenityos.org>2020-05-20 08:37:50 +0200
commitc1eb744ff0a82cf6c8e3470ac10e2f417c7d9de2 (patch)
tree02aca2ec7136f8ceb24221506aedffb80e62aa4f
parentcdbbe14062ea49f9a9d9b0e5627aba9efd07659a (diff)
downloadserenity-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.cpp2
-rw-r--r--CMakeLists.txt4
-rw-r--r--Kernel/CMakeLists.txt3
-rw-r--r--Libraries/LibC/CMakeLists.txt2
-rw-r--r--Libraries/LibDebug/DebugSession.h2
-rw-r--r--Libraries/LibM/CMakeLists.txt1
-rw-r--r--Libraries/LibM/math.cpp4
-rw-r--r--Libraries/LibPthread/CMakeLists.txt1
-rw-r--r--Userland/functrace.cpp2
-rw-r--r--Userland/strace.cpp2
-rw-r--r--Userland/test-crypto.cpp2
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>