diff options
author | Liav A <liavalb@gmail.com> | 2022-10-04 02:48:37 +0300 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-12-28 11:53:41 +0100 |
commit | 55f17fff3669e09157de8a69a7a51181403228d0 (patch) | |
tree | 117ef67505ec6ff22f3a7164de0a409e413e5456 | |
parent | d3eb4f7a41f0968872e3dfad8ebaa236fe00334f (diff) | |
download | serenity-55f17fff3669e09157de8a69a7a51181403228d0.zip |
Meta: Remove i686 target
-rw-r--r-- | .github/workflows/cmake.yml | 12 | ||||
-rw-r--r-- | .github/workflows/pvs-studio-static-analysis.yml | 2 | ||||
-rw-r--r-- | .github/workflows/sonar-cloud-static-analysis.yml | 2 | ||||
-rw-r--r-- | Meta/Azure/Caches.yml | 2 | ||||
-rw-r--r-- | Meta/Azure/Serenity.yml | 2 | ||||
-rw-r--r-- | Meta/ShellCompletions/zsh/_serenity | 3 | ||||
-rwxr-xr-x | Meta/build-image-qemu.sh | 5 | ||||
-rwxr-xr-x | Meta/debug-kernel.sh | 4 | ||||
-rwxr-xr-x | Meta/run.sh | 6 | ||||
-rwxr-xr-x | Meta/serenity.sh | 20 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rwxr-xr-x | Toolchain/BuildClang.sh | 3 | ||||
-rw-r--r-- | Toolchain/CMake/LLVMConfig.cmake | 2 | ||||
-rw-r--r-- | Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch | 2 | ||||
-rw-r--r-- | Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch | 13 | ||||
-rw-r--r-- | azure-pipelines.yml | 4 |
16 files changed, 25 insertions, 61 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index f9a801dfd0..7762519296 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -22,13 +22,9 @@ jobs: matrix: debug-options: ['ALL_DEBUG', 'NORMAL_DEBUG'] os: [ubuntu-22.04] - arch: ['i686', 'x86_64'] + arch: ['x86_64'] # If ccache is broken and you would like to bust the ccache cache on Github Actions, increment this: ccache-mark: [0] - exclude: - # We currently manually disable the ALL_DEBUG build on x86_64 for sake of saving CI time, as it is not our main target right now - - debug-options: 'ALL_DEBUG' - arch: 'x86_64' steps: # Pull requests can trail behind `master` and can cause breakage if merging before running the CI checks on an updated branch. @@ -121,8 +117,8 @@ jobs: - name: Show ccache stats before build and configure run: | # We only have 5 GiB of cache available *in total*. Beyond that, GitHub deletes caches. - # Currently, we use about 130 MB for the two toolchains (i686 & x86_64), and three ccache caches: - # One with ALL_DEBUG (i686) and two with NORMAL_DEBUG (i686 & x86_64). + # Currently, we use about 130 MB for the toolchains (x86_64), and 2 ccache caches: + # One with ALL_DEBUG (x86_64), and one with NORMAL_DEBUG (x86_64). # Therefore, using 1.6 GB or more per cache causes disaster. # Building from scratch fills the ccache cache from 0 to about 0.7 GB, and after compression it comes out to # about 0.25 GB, so 3 GB (1GB after compression) should be plenty, all while comfortably fitting in the cache. @@ -231,7 +227,7 @@ jobs: run: '[ ! -e debug.log ] || cat debug.log' - name: Check manpages for completeness - if: ${{ matrix.debug-options == 'NORMAL_DEBUG' && matrix.arch == 'i686'}} + if: ${{ matrix.debug-options == 'NORMAL_DEBUG' && matrix.arch == 'x86_64'}} working-directory: ${{ github.workspace }}/Build/${{ matrix.arch }} env: # The script already sets the correct SERENITY_RUN and SERENITY_KERNEL_CMDLINE envvars. diff --git a/.github/workflows/pvs-studio-static-analysis.yml b/.github/workflows/pvs-studio-static-analysis.yml index 967f5c6739..c8da2ebf5a 100644 --- a/.github/workflows/pvs-studio-static-analysis.yml +++ b/.github/workflows/pvs-studio-static-analysis.yml @@ -9,7 +9,7 @@ jobs: name: Static Analysis runs-on: ubuntu-22.04 env: - PVS_STUDIO_ANALYSIS_ARCH: i686 + PVS_STUDIO_ANALYSIS_ARCH: x86_64 if: always() && github.repository == 'SerenityOS/serenity' && github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/sonar-cloud-static-analysis.yml b/.github/workflows/sonar-cloud-static-analysis.yml index bed563771f..5f1993ffff 100644 --- a/.github/workflows/sonar-cloud-static-analysis.yml +++ b/.github/workflows/sonar-cloud-static-analysis.yml @@ -13,7 +13,7 @@ jobs: # Latest scanner version is tracked on: https://docs.sonarcloud.io/advanced-setup/ci-based-analysis/sonarscanner-cli/ SONAR_SCANNER_VERSION: 4.7.0.2747 SONAR_SERVER_URL: "https://sonarcloud.io" - SONAR_ANALYSIS_ARCH: i686 + SONAR_ANALYSIS_ARCH: x86_64 steps: - uses: actions/checkout@v3 with: diff --git a/Meta/Azure/Caches.yml b/Meta/Azure/Caches.yml index 166070df16..2d9fad9380 100644 --- a/Meta/Azure/Caches.yml +++ b/Meta/Azure/Caches.yml @@ -1,6 +1,6 @@ parameters: os: 'Linux' - arch: 'i686' + arch: 'x86_64' toolchain: 'gcc' coverage: 'OFF' download_cache_path: '' diff --git a/Meta/Azure/Serenity.yml b/Meta/Azure/Serenity.yml index 9458261e3c..c727df8b9f 100644 --- a/Meta/Azure/Serenity.yml +++ b/Meta/Azure/Serenity.yml @@ -1,5 +1,5 @@ parameters: - arch: 'i686' + arch: 'x86_64' coverage: 'OFF' jobs: diff --git a/Meta/ShellCompletions/zsh/_serenity b/Meta/ShellCompletions/zsh/_serenity index 551887e307..d2916a3f1b 100644 --- a/Meta/ShellCompletions/zsh/_serenity +++ b/Meta/ShellCompletions/zsh/_serenity @@ -28,8 +28,7 @@ _serenity() { local targets targets=( - 'i686:Target i686 (default)' - 'x86_64:Target x86_64' + 'x86_64:Target x86_64 (default)' 'aarch64:Target aarch64' 'lagom:Target host machine' ) diff --git a/Meta/build-image-qemu.sh b/Meta/build-image-qemu.sh index b7bb84ab66..852789ef7c 100755 --- a/Meta/build-image-qemu.sh +++ b/Meta/build-image-qemu.sh @@ -32,11 +32,6 @@ fi # Prepend the toolchain qemu directory so we pick up QEMU from there PATH="$SCRIPT_DIR/../Toolchain/Local/qemu/bin:$PATH" -# Also prepend the i686 toolchain directory because that's where most -# people will have their QEMU binaries if they built them before the -# directory was changed to Toolchain/Local/qemu. -PATH="$SCRIPT_DIR/../Toolchain/Local/i686/bin:$PATH" - # We depend on GNU coreutils du for the --apparent-size extension. # GNU coreutils is a build dependency. if command -v gdu > /dev/null 2>&1 && gdu --version | grep -q "GNU coreutils"; then diff --git a/Meta/debug-kernel.sh b/Meta/debug-kernel.sh index 5ba4ae0d4e..603eeb6dc6 100755 --- a/Meta/debug-kernel.sh +++ b/Meta/debug-kernel.sh @@ -31,10 +31,6 @@ if [ "$SERENITY_ARCH" = "x86_64" ]; then gdb_arch=i386:x86-64 prekernel_image=Prekernel64 kernel_base=0x2000200000 -elif [ "$SERENITY_ARCH" = "i686" ]; then - gdb_arch=i386:intel - prekernel_image=Prekernel32 - kernel_base=0xc0200000 elif [ "$SERENITY_ARCH" = "aarch64" ]; then gdb_arch=aarch64:armv8-r prekernel_image=Prekernel diff --git a/Meta/run.sh b/Meta/run.sh index 2f42cbf25b..b48e1d4e37 100755 --- a/Meta/run.sh +++ b/Meta/run.sh @@ -49,10 +49,10 @@ fi # Prepend the toolchain qemu directory so we pick up QEMU from there PATH="$SCRIPT_DIR/../Toolchain/Local/qemu/bin:$PATH" -# Also prepend the i686 toolchain directory because that's where most +# Also prepend the x86_64 toolchain directory because that's where most # people will have their QEMU binaries if they built them before the # directory was changed to Toolchain/Local/qemu. -PATH="$SCRIPT_DIR/../Toolchain/Local/i686/bin:$PATH" +PATH="$SCRIPT_DIR/../Toolchain/Local/x86_64/bin:$PATH" SERENITY_RUN="${SERENITY_RUN:-$1}" @@ -75,7 +75,7 @@ if [ -z "$SERENITY_QEMU_BIN" ]; then elif [ "$SERENITY_ARCH" = "x86_64" ]; then SERENITY_QEMU_BIN="${QEMU_BINARY_PREFIX}qemu-system-x86_64${QEMU_BINARY_SUFFIX}" else - SERENITY_QEMU_BIN="${QEMU_BINARY_PREFIX}qemu-system-i386${QEMU_BINARY_SUFFIX}" + die "Please specify a valid CPU architecture." fi fi diff --git a/Meta/serenity.sh b/Meta/serenity.sh index ffe9e23c55..9dcec76992 100755 --- a/Meta/serenity.sh +++ b/Meta/serenity.sh @@ -7,7 +7,7 @@ print_help() { NAME=$(basename "$ARG0") cat <<EOF Usage: $NAME COMMAND [TARGET] [TOOLCHAIN] [ARGS...] - Supported TARGETs: aarch64, i686, x86_64, lagom. Defaults to SERENITY_ARCH, or x86_64 if not set. + Supported TARGETs: aarch64, x86_64, lagom. Defaults to SERENITY_ARCH, or x86_64 if not set. Supported TOOLCHAINs: GNU, Clang. Defaults to SERENITY_TOOLCHAIN, or GNU if not set. Supported COMMANDs: build: Compiles the target binaries, [ARGS...] are passed through to ninja @@ -46,22 +46,22 @@ Usage: $NAME COMMAND [TARGET] [TOOLCHAIN] [ARGS...] Examples: - $NAME run i686 GNU smp=on + $NAME run x86_64 GNU smp=on Runs the image in QEMU passing "smp=on" to the kernel command line - $NAME run i686 GNU 'init=/bin/UserspaceEmulator init_args=/bin/SystemServer' + $NAME run x86_64 GNU 'init=/bin/UserspaceEmulator init_args=/bin/SystemServer' Runs the image in QEMU, and run the entire system through UserspaceEmulator (not fully supported yet) $NAME run - Runs the image for the default TARGET i686 in QEMU + Runs the image for the default TARGET x86_64 in QEMU $NAME run lagom js -A Runs the Lagom-built js(1) REPL $NAME test lagom Runs the unit tests on the build host - $NAME kaddr2line i686 0x12345678 + $NAME kaddr2line x86_64 0x12345678 Resolves the address 0x12345678 in the Kernel binary - $NAME addr2line i686 WindowServer 0x12345678 + $NAME addr2line x86_64 WindowServer 0x12345678 Resolves the address 0x12345678 in the WindowServer binary - $NAME gdb i686 smp=on -ex 'hb *init' - Runs the image for the TARGET i686 in qemu and attaches a gdb session + $NAME gdb x86_64 smp=on -ex 'hb *init' + Runs the image for the TARGET x86_64 in qemu and attaches a gdb session setting a breakpoint at the init() function in the Kernel. EOF } @@ -120,10 +120,6 @@ is_valid_target() { CMAKE_ARGS+=("-DSERENITY_ARCH=aarch64") return 0 fi - if [ "$TARGET" = "i686" ]; then - CMAKE_ARGS+=("-DSERENITY_ARCH=i686") - return 0 - fi if [ "$TARGET" = "x86_64" ]; then CMAKE_ARGS+=("-DSERENITY_ARCH=x86_64") return 0 @@ -1,6 +1,6 @@ # SerenityOS -Graphical Unix-like operating system for x86 computers. +Graphical Unix-like operating system for x86-64 computers. [![GitHub Actions Status](https://github.com/SerenityOS/serenity/workflows/Build,%20lint,%20and%20test/badge.svg)](https://github.com/SerenityOS/serenity/actions?query=workflow%3A"Build%2C%20lint%2C%20and%20test") [![Azure DevOps Status](https://dev.azure.com/SerenityOS/SerenityOS/_apis/build/status/CI?branchName=master)](https://dev.azure.com/SerenityOS/SerenityOS/_build/latest?definitionId=1&branchName=master) @@ -28,7 +28,7 @@ You can watch videos of the system being developed on YouTube: ## Features -* Modern x86 32-bit and 64-bit kernel with pre-emptive multi-threading +* Modern x86 64-bit kernel with pre-emptive multi-threading * [Browser](Userland/Applications/Browser/) with JavaScript, WebAssembly, and more (check the spec compliance for [JS](https://libjs.dev/test262/), [CSS](https://css.tobyase.de/), and [WASM](https://libjs.dev/wasm/)) * Security features (hardware protections, limited userland capabilities, W^X memory, `pledge` & `unveil`, (K)ASLR, OOM-resistance, web-content isolation, state-of-the-art TLS algorithms, ...) * [System services](Userland/Services/) (WindowServer, LoginServer, AudioServer, WebServer, RequestServer, CrashServer, ...) and modern IPC diff --git a/Toolchain/BuildClang.sh b/Toolchain/BuildClang.sh index 8fdbe4c313..a837dbbe21 100755 --- a/Toolchain/BuildClang.sh +++ b/Toolchain/BuildClang.sh @@ -9,7 +9,7 @@ echo "$DIR" PREFIX="$DIR/Local/clang/" BUILD="$DIR/../Build/" -USERLAND_ARCHS="i686 x86_64" +USERLAND_ARCHS="x86_64" ARCHS="$USERLAND_ARCHS aarch64" MD5SUM="md5sum" @@ -286,7 +286,6 @@ pushd "$DIR/Build/clang" pushd llvm buildstep "llvm/configure" cmake "$DIR/Tarballs/$LLVM_NAME/llvm" \ -G Ninja \ - -DSERENITY_i686-pc-serenity_SYSROOT="$BUILD/i686clang/Root" \ -DSERENITY_x86_64-pc-serenity_SYSROOT="$BUILD/x86_64clang/Root" \ -DSERENITY_aarch64-pc-serenity_SYSROOT="$BUILD/aarch64clang/Root" \ -DCMAKE_INSTALL_PREFIX="$PREFIX" \ diff --git a/Toolchain/CMake/LLVMConfig.cmake b/Toolchain/CMake/LLVMConfig.cmake index 508779d255..17ed4381e6 100644 --- a/Toolchain/CMake/LLVMConfig.cmake +++ b/Toolchain/CMake/LLVMConfig.cmake @@ -25,7 +25,7 @@ set(LLVM_INSTALL_BINUTILS_SYMLINKS OFF CACHE BOOL "") set(CLANG_ENABLE_CLANGD OFF CACHE BOOL "") set(compiler_flags "-nostdlib -nostdlib++") -foreach(target i686-pc-serenity;x86_64-pc-serenity;aarch64-pc-serenity) +foreach(target x86_64-pc-serenity;aarch64-pc-serenity) list(APPEND targets "${target}") set(RUNTIMES_${target}_CMAKE_BUILD_TYPE Release CACHE STRING "") diff --git a/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch b/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch index 9edfcf0f30..74ec429f33 100644 --- a/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch +++ b/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch @@ -94,7 +94,7 @@ index 0000000000000000000000000000000000000000..17551aaa1a07e6c0b7365f9889937512 +#endif + +/* Default arguments you want when running your -+ i686-serenity-gcc/x86_64-serenity-gcc toolchain */ ++ x86_64-serenity-gcc toolchain */ +#undef LIB_SPEC +#define LIB_SPEC "-lc" /* link against C standard library */ + diff --git a/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch b/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch index 6f281360f1..25385fa088 100644 --- a/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch @@ -13,7 +13,6 @@ protection and position-independent code by default. clang/lib/Driver/CMakeLists.txt | 1 + clang/lib/Driver/Driver.cpp | 4 + clang/lib/Driver/ToolChain.cpp | 2 + - clang/lib/Driver/ToolChains/Arch/X86.cpp | 1 + clang/lib/Driver/ToolChains/Serenity.cpp | 336 +++++++++++++++++++++++ clang/lib/Driver/ToolChains/Serenity.h | 99 +++++++ 8 files changed, 467 insertions(+) @@ -127,18 +126,6 @@ index 7a4319ea680f97dde074b21afa2ee6f75c350091..8db07d9dd0754bffeddf00afe365fe7d default: return getOS(); } -diff --git a/clang/lib/Driver/ToolChains/Arch/X86.cpp b/clang/lib/Driver/ToolChains/Arch/X86.cpp -index cd7c014faa5e0d503adc9f2c30b83b3efbb7e315..004185d28816b8e8bb903612aa053cb883524fc5 100644 ---- a/clang/lib/Driver/ToolChains/Arch/X86.cpp -+++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp -@@ -113,6 +113,7 @@ std::string x86::getX86TargetCPU(const Driver &D, const ArgList &Args, - case llvm::Triple::OpenBSD: - return "i586"; - case llvm::Triple::FreeBSD: -+ case llvm::Triple::Serenity: - return "i686"; - default: - // Fallback to p4. diff --git a/clang/lib/Driver/ToolChains/Serenity.cpp b/clang/lib/Driver/ToolChains/Serenity.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4fdf45a19eb2704d00a03e7b2f34f87f63a0a074 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6c7cd546c2..1ac61cffb1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -35,8 +35,4 @@ stages: jobs: - template: Meta/Azure/Serenity.yml parameters: - arch: 'i686' - - - template: Meta/Azure/Serenity.yml - parameters: arch: 'x86_64' |