mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-03 23:25:20 +00:00
While we're at it, remove the `/bin/sh` patch that is no longer needed, as we now build the port fully on the host.
120 lines
4.7 KiB
Diff
120 lines
4.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Andrew Kaster <akaster@serenityos.org>
|
|
Date: Sun, 2 Jan 2022 23:19:40 -0700
|
|
Subject: [PATCH] SerenityOS: Add Platform module
|
|
---
|
|
Modules/Platform/SerenityOS-Clang-ASM.cmake | 2 ++
|
|
Modules/Platform/SerenityOS-Clang-C.cmake | 2 ++
|
|
Modules/Platform/SerenityOS-Clang-CXX.cmake | 2 ++
|
|
Modules/Platform/SerenityOS-GNU-ASM.cmake | 2 ++
|
|
Modules/Platform/SerenityOS-GNU-C.cmake | 2 ++
|
|
Modules/Platform/SerenityOS-GNU-CXX.cmake | 2 ++
|
|
Modules/Platform/SerenityOS-GNU.cmake | 24 +++++++++++++++++++++
|
|
Modules/Platform/SerenityOS.cmake | 12 +++++++++++
|
|
8 files changed, 48 insertions(+)
|
|
create mode 100644 Modules/Platform/SerenityOS-Clang-ASM.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS-Clang-C.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS-Clang-CXX.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS-GNU-ASM.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS-GNU-C.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS-GNU-CXX.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS-GNU.cmake
|
|
create mode 100644 Modules/Platform/SerenityOS.cmake
|
|
|
|
diff --git a/Modules/Platform/SerenityOS-Clang-ASM.cmake b/Modules/Platform/SerenityOS-Clang-ASM.cmake
|
|
new file mode 100644
|
|
index 00000000..ba1e18cf
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-Clang-ASM.cmake
|
|
@@ -0,0 +1,2 @@
|
|
+include(Platform/SerenityOS-GNU)
|
|
+__serenity_compiler_gnu(ASM)
|
|
diff --git a/Modules/Platform/SerenityOS-Clang-C.cmake b/Modules/Platform/SerenityOS-Clang-C.cmake
|
|
new file mode 100644
|
|
index 00000000..791a1978
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-Clang-C.cmake
|
|
@@ -0,0 +1,2 @@
|
|
+include(Platform/SerenityOS-GNU)
|
|
+__serenity_compiler_gnu(C)
|
|
diff --git a/Modules/Platform/SerenityOS-Clang-CXX.cmake b/Modules/Platform/SerenityOS-Clang-CXX.cmake
|
|
new file mode 100644
|
|
index 00000000..084e319f
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-Clang-CXX.cmake
|
|
@@ -0,0 +1,2 @@
|
|
+include(Platform/SerenityOS-GNU)
|
|
+__serenity_compiler_gnu(CXX)
|
|
diff --git a/Modules/Platform/SerenityOS-GNU-ASM.cmake b/Modules/Platform/SerenityOS-GNU-ASM.cmake
|
|
new file mode 100644
|
|
index 00000000..ba1e18cf
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-GNU-ASM.cmake
|
|
@@ -0,0 +1,2 @@
|
|
+include(Platform/SerenityOS-GNU)
|
|
+__serenity_compiler_gnu(ASM)
|
|
diff --git a/Modules/Platform/SerenityOS-GNU-C.cmake b/Modules/Platform/SerenityOS-GNU-C.cmake
|
|
new file mode 100644
|
|
index 00000000..791a1978
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-GNU-C.cmake
|
|
@@ -0,0 +1,2 @@
|
|
+include(Platform/SerenityOS-GNU)
|
|
+__serenity_compiler_gnu(C)
|
|
diff --git a/Modules/Platform/SerenityOS-GNU-CXX.cmake b/Modules/Platform/SerenityOS-GNU-CXX.cmake
|
|
new file mode 100644
|
|
index 00000000..084e319f
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-GNU-CXX.cmake
|
|
@@ -0,0 +1,2 @@
|
|
+include(Platform/SerenityOS-GNU)
|
|
+__serenity_compiler_gnu(CXX)
|
|
diff --git a/Modules/Platform/SerenityOS-GNU.cmake b/Modules/Platform/SerenityOS-GNU.cmake
|
|
new file mode 100644
|
|
index 00000000..ed39477a
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS-GNU.cmake
|
|
@@ -0,0 +1,24 @@
|
|
+# This module is shared by multiple languages; use include blocker.
|
|
+include_guard()
|
|
+
|
|
+set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--hash-style=gnu,-z,relro,-z,now,-z,noexecstack,-z,separate-code,-z,max-page-size=0x1000")
|
|
+
|
|
+macro(__serenity_compiler_gnu lang)
|
|
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,")
|
|
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":")
|
|
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_${lang}_FLAG "-Wl,-rpath-link,")
|
|
+ set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,-soname,")
|
|
+ set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-dynamic")
|
|
+
|
|
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared -Wl,--hash-style=gnu,-z,relro,-z,now,-z,noexecstack,-z,separate-code")
|
|
+
|
|
+ # Initialize link type selection flags. These flags are used when
|
|
+ # building a shared library, shared module, or executable that links
|
|
+ # to other libraries to select whether to use the static or shared
|
|
+ # versions of the libraries.
|
|
+ foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
|
|
+ set(CMAKE_${type}_LINK_STATIC_${lang}_FLAGS "-Wl,-Bstatic")
|
|
+ set(CMAKE_${type}_LINK_DYNAMIC_${lang}_FLAGS "-Wl,-Bdynamic")
|
|
+ endforeach()
|
|
+
|
|
+endmacro()
|
|
diff --git a/Modules/Platform/SerenityOS.cmake b/Modules/Platform/SerenityOS.cmake
|
|
new file mode 100644
|
|
index 00000000..541620c2
|
|
--- /dev/null
|
|
+++ b/Modules/Platform/SerenityOS.cmake
|
|
@@ -0,0 +1,12 @@
|
|
+
|
|
+set(SERENITYOS 1)
|
|
+
|
|
+set(CMAKE_DL_LIBS "-ldl")
|
|
+set(CMAKE_SHARED_LIBRARY_RPATH_ORIGIN_TOKEN "\$ORIGIN")
|
|
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
|
|
+
|
|
+# Shared libraries with no builtin soname may not be linked safely by
|
|
+# specifying the file path.
|
|
+set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
|
|
+
|
|
+include(Platform/UnixPaths)
|