Skip to content

Commit 596e48e

Browse files
committed
Explicitly pass -march flags to WebKit
1 parent 9a2cc42 commit 596e48e

File tree

5 files changed

+38
-7
lines changed

5 files changed

+38
-7
lines changed

.github/workflows/build-reusable.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ jobs:
216216
ENABLE_SANITIZERS: ${{matrix.ENABLE_SANITIZERS}}
217217
run: |
218218
rm -rf ${{runner.temp}}/bun-webkit ${{runner.temp}}/bun-webkit.tar.gz
219+
if [ "${{matrix.package_json_arch}}" = "arm64" ]; then
220+
export MARCH_FLAG="-march=armv8-a+crc -mtune=ampere1"
221+
elif [ "${{matrix.package_json_arch}}" = "x64" ]; then
222+
export MARCH_FLAG="-march=nehalem"
223+
fi
219224
WEBKIT_RELEASE_TYPE=${{matrix.CMAKE_BUILD_TYPE}} CPU="native" cpu=native LTO_FLAG="${{matrix.lto_flag}}" temp=${{runner.temp}} ENABLE_SANITIZERS="${{matrix.ENABLE_SANITIZERS}}" bash release.sh
220225
cd ${{runner.temp}}
221226
echo "#define BUN_WEBKIT_VERSION \"${{ inputs.build_ref }}\"" >> bun-webkit/include/cmakeconfig.h
@@ -366,6 +371,11 @@ jobs:
366371
- name: Run
367372
run: |
368373
rm -rf ${{runner.temp}}/bun-webkit ${{runner.temp}}/bun-webkit.tar.gz
374+
if [ "${{matrix.package_json_arch}}" = "arm64" ]; then
375+
export MARCH_FLAG="-march=armv8-a+crc -mtune=ampere1"
376+
elif [ "${{matrix.package_json_arch}}" = "x64" ]; then
377+
export MARCH_FLAG="-march=nehalem"
378+
fi
369379
WEBKIT_RELEASE_TYPE=${{matrix.CMAKE_BUILD_TYPE}} CPU="native" cpu=native LTO_FLAG="${{matrix.lto_flag}}" temp=${{runner.temp}} bash musl-release.sh
370380
cd ${{runner.temp}}
371381
echo "#define BUN_WEBKIT_VERSION \"${{ inputs.build_ref }}\"" >> bun-webkit/include/cmakeconfig.h

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ ENV LIBRARY_PATH="/usr/lib/gcc/x86_64-linux-gnu/13:/usr/lib/x86_64-linux-gnu"
154154
ENV CPLUS_INCLUDE_PATH="/usr/include/c++/13:/usr/include/x86_64-linux-gnu/c++/13"
155155
ENV C_INCLUDE_PATH="/usr/lib/gcc/x86_64-linux-gnu/13/include"
156156

157-
ENV CFLAGS="${DEFAULT_CFLAGS} $CFLAGS -stdlib=libstdc++"
158-
ENV CXXFLAGS="${DEFAULT_CFLAGS} $CXXFLAGS -stdlib=libstdc++"
157+
ENV CFLAGS="${DEFAULT_CFLAGS} ${MARCH_FLAG} $CFLAGS -stdlib=libstdc++"
158+
ENV CXXFLAGS="${DEFAULT_CFLAGS} ${MARCH_FLAG} $CXXFLAGS -stdlib=libstdc++"
159159
ENV LDFLAGS="-fuse-ld=lld -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/x86_64-linux-gnu"
160160

161161
# Verify toolchain setup

Dockerfile.musl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ RUN apk add --no-cache cpio curl tar
4646

4747
ADD https://github.com/unicode-org/icu/releases/download/release-75-1/icu4c-75_1-src.tgz /icu.tgz
4848
RUN --mount=type=tmpfs,target=/icu \
49-
export CFLAGS="${DEFAULT_CFLAGS} $CFLAGS -Os -std=c17 $LTO_FLAG" && \
50-
export CXXFLAGS="${DEFAULT_CFLAGS} $CXXFLAGS -Os -std=c++20 -fno-exceptions $LTO_FLAG -fno-c++-static-destructors " && \
49+
export CFLAGS="${DEFAULT_CFLAGS} ${MARCH_FLAG} $CFLAGS -Os -std=c17 $LTO_FLAG" && \
50+
export CXXFLAGS="${DEFAULT_CFLAGS} ${MARCH_FLAG} $CXXFLAGS -Os -std=c++20 -fno-exceptions $LTO_FLAG -fno-c++-static-destructors " && \
5151
export LDFLAGS="-fuse-ld=lld " && \
5252
cd /icu && \
5353
tar -xf /icu.tgz --strip-components=1 && \
@@ -78,8 +78,8 @@ WORKDIR /webkit
7878
COPY --from=build_icu /output /icu
7979

8080
RUN --mount=type=tmpfs,target=/webkitbuild \
81-
export CFLAGS="${DEFAULT_CFLAGS} $CFLAGS $LTO_FLAG -ffile-prefix-map=/webkit/Source=vendor/WebKit/Source -ffile-prefix-map=/webkitbuild/=. " && \
82-
export CXXFLAGS="${DEFAULT_CFLAGS} $CXXFLAGS $LTO_FLAG -fno-c++-static-destructors -ffile-prefix-map=/webkit/Source=vendor/WebKit/Source -ffile-prefix-map=/webkitbuild/=. " && \
81+
export CFLAGS="${DEFAULT_CFLAGS} ${MARCH_FLAG} $CFLAGS $LTO_FLAG -ffile-prefix-map=/webkit/Source=vendor/WebKit/Source -ffile-prefix-map=/webkitbuild/=. " && \
82+
export CXXFLAGS="${DEFAULT_CFLAGS} ${MARCH_FLAG} $CXXFLAGS $LTO_FLAG -fno-c++-static-destructors -ffile-prefix-map=/webkit/Source=vendor/WebKit/Source -ffile-prefix-map=/webkitbuild/=. " && \
8383
export LDFLAGS="-fuse-ld=lld $LDFLAGS " && \
8484
cd /webkitbuild && \
8585
cmake \

musl-release.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ fi
3434

3535
export WEBKIT_RELEASE_TYPE=${WEBKIT_RELEASE_TYPE:-"Release"}
3636

37+
# Set default MARCH_FLAG based on architecture if not already set
38+
if [ -z "${MARCH_FLAG:-}" ]; then
39+
if [ "$BUILDKIT_ARCH" == "arm64" ]; then
40+
export MARCH_FLAG="-march=armv8-a+crc -mtune=ampere1"
41+
elif [ "$BUILDKIT_ARCH" == "amd64" ]; then
42+
export MARCH_FLAG="-march=nehalem"
43+
fi
44+
fi
45+
export MARCH_FLAG="${MARCH_FLAG:-""}"
46+
3747
export CONTAINER_NAME=bun-webkit-linux-$BUILDKIT_ARCH
3848

3949
if [ "$WEBKIT_RELEASE_TYPE" == "relwithdebuginfo" ]; then
@@ -43,4 +53,4 @@ fi
4353
mkdir -p $temp
4454
rm -rf $temp/bun-webkit
4555

46-
docker buildx build -f Dockerfile.musl -t $CONTAINER_NAME --build-arg LTO_FLAG="$LTO_FLAG" --build-arg WEBKIT_RELEASE_TYPE=$WEBKIT_RELEASE_TYPE --progress=plain --platform=linux/$BUILDKIT_ARCH --target=artifact --output type=local,dest=$temp/bun-webkit .
56+
docker buildx build -f Dockerfile.musl -t $CONTAINER_NAME --build-arg LTO_FLAG="$LTO_FLAG" --build-arg MARCH_FLAG="$MARCH_FLAG" --build-arg WEBKIT_RELEASE_TYPE=$WEBKIT_RELEASE_TYPE --progress=plain --platform=linux/$BUILDKIT_ARCH --target=artifact --output type=local,dest=$temp/bun-webkit .

release.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ fi
3434

3535
export WEBKIT_RELEASE_TYPE=${WEBKIT_RELEASE_TYPE:-"Release"}
3636

37+
# Set default MARCH_FLAG based on architecture if not already set
38+
if [ -z "${MARCH_FLAG:-}" ]; then
39+
if [ "$BUILDKIT_ARCH" == "arm64" ]; then
40+
export MARCH_FLAG="-march=armv8-a+crc -mtune=ampere1"
41+
elif [ "$BUILDKIT_ARCH" == "amd64" ]; then
42+
export MARCH_FLAG="-march=nehalem"
43+
fi
44+
fi
45+
export MARCH_FLAG="${MARCH_FLAG:-""}"
46+
3747
export CONTAINER_NAME=bun-webkit-linux-$BUILDKIT_ARCH
3848

3949
if [ "$WEBKIT_RELEASE_TYPE" == "relwithdebuginfo" ]; then
@@ -55,6 +65,7 @@ docker buildx build \
5565
-t $CONTAINER_NAME \
5666
--build-arg ENABLE_SANITIZERS=$ENABLE_SANITIZERS \
5767
--build-arg LTO_FLAG="$LTO_FLAG" \
68+
--build-arg MARCH_FLAG="$MARCH_FLAG" \
5869
--build-arg RELEASE_FLAGS="$RELEASE_FLAGS" \
5970
--build-arg WEBKIT_RELEASE_TYPE=$WEBKIT_RELEASE_TYPE \
6071
--build-arg RELEASE_FLAGS="${RELEASE_FLAGS:-"-O2 -DNDEBUG=1"}" \

0 commit comments

Comments
 (0)