Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
464244460d |
No files matched your search
@@ -1,43 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
# Description: verify CODEOWNERS file is sane
|
||||
# https://postmarketos.org/pmb-ci
|
||||
|
||||
# TODO Future improvements:
|
||||
# * Check that all devices in main/community have someone in CODEOWNERS
|
||||
# * Check that GitLab user actually exists (e.g. deleted account, account with
|
||||
# changed user name)
|
||||
|
||||
if grep -q " " CODEOWNERS; then
|
||||
echo
|
||||
echo "ERROR: Found space indentation in CODEOWNERS."
|
||||
echo "ERROR: Please indent with tab characters."
|
||||
grep " " CODEOWNERS
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fail=0
|
||||
tmppipe=$(mktemp -u)
|
||||
mkfifo "$tmppipe"
|
||||
grep -v "^#" CODEOWNERS | cut -d' ' -f1 > "$tmppipe" &
|
||||
while IFS= read -r line; do
|
||||
[ -z "$line" ] && continue
|
||||
|
||||
# Check if entry generally exists
|
||||
# shellcheck disable=SC2086
|
||||
ls $line >/dev/null 2>&1 || { fail=1; echo "Non-existing: $line"; }
|
||||
|
||||
# Check that directories end with a slash
|
||||
# shellcheck disable=SC2086
|
||||
if test -d "$(ls -d $line)"; then
|
||||
echo "$line" | grep -q '/$' || { fail=1; echo "Missing trailing slash: $line"; }
|
||||
fi
|
||||
done < "$tmppipe"
|
||||
rm "$tmppipe"
|
||||
|
||||
if [ "$fail" = 1 ]; then
|
||||
echo
|
||||
echo "ERROR: Invalid CODEOWNERS entries, see above."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
# Copyright 2024 Caleb Connolly
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# Description: check pkgver/pkgrel bumps, amount of changed pkgs etc
|
||||
# Options: native
|
||||
# Use 'native' because it requires git commit history.
|
||||
# https://postmarketos.org/pmb-ci
|
||||
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
set -x
|
||||
apk -q add python3 git
|
||||
# Keep environment variables
|
||||
exec su -p "${TESTUSER:-build}" -c "sh -e $0"
|
||||
fi
|
||||
|
||||
.ci/lib/generate_test_pipeline.py
|
||||
@@ -45,10 +45,3 @@ if grep --exclude='source_deviceinfo' -qEr 'source /etc/deviceinfo|\. /etc/devic
|
||||
grep --color=always --exclude='rootfs-usr-share-misc-source_deviceinfo' -Er 'source /etc/deviceinfo|\. /etc/deviceinfo' -- *
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Removed deviceinfo variable
|
||||
if grep -qr 'deviceinfo_modules_initfs' -- *; then
|
||||
echo 'ERROR: deviceinfo_modules_initfs variable has been removed. Use "modules-initfs" file instead.'
|
||||
grep --color=always -r 'deviceinfo_modules_initfs' -- *
|
||||
exit 1
|
||||
fi
|
||||
+12
-25
@@ -22,8 +22,9 @@ def get_pmaports_dir():
|
||||
return ret
|
||||
|
||||
|
||||
def run_cmd(cmd, check=True, stderr=None):
|
||||
""" Run a command and return the output """
|
||||
def run_git(parameters, check=True, stderr=None):
|
||||
""" Run git in the pmaports dir and return the output """
|
||||
cmd = ["git", "-C", get_pmaports_dir()] + parameters
|
||||
try:
|
||||
return subprocess.check_output(cmd, stderr=stderr).decode()
|
||||
except subprocess.CalledProcessError:
|
||||
@@ -32,12 +33,6 @@ def run_cmd(cmd, check=True, stderr=None):
|
||||
return None
|
||||
|
||||
|
||||
def run_git(parameters, check=True, stderr=None):
|
||||
""" Run git in the pmaports dir and return the output """
|
||||
cmd = ["git", "-C", get_pmaports_dir()] + parameters
|
||||
return run_cmd(cmd, check, stderr)
|
||||
|
||||
|
||||
def add_upstream_git_remote():
|
||||
""" Add a remote pointing to postmarketOS/pmaports. """
|
||||
run_git(["remote", "add", "upstream",
|
||||
@@ -90,21 +85,17 @@ def get_upstream_branch():
|
||||
return ret
|
||||
|
||||
|
||||
def get_changed_files(removed=True, print_info=True):
|
||||
def get_changed_files(removed=True):
|
||||
""" Get all changed files and print them, as well as the branch and the
|
||||
commit that was used for the diff.
|
||||
:param removed: also return removed files (default: True)
|
||||
:returns: set of changed files
|
||||
"""
|
||||
def log_info(message):
|
||||
if print_info:
|
||||
print(message)
|
||||
|
||||
branch_upstream = f"upstream/{get_upstream_branch()}"
|
||||
commit_head = run_git(["rev-parse", "HEAD"])[:-1]
|
||||
commit_upstream = run_git(["rev-parse", branch_upstream])[:-1]
|
||||
log_info("commit HEAD: " + commit_head)
|
||||
log_info(f"commit {branch_upstream}: f{commit_upstream}")
|
||||
print("commit HEAD: " + commit_head)
|
||||
print(f"commit {branch_upstream}: f{commit_upstream}")
|
||||
|
||||
# Check if we are HEAD on the upstream branch
|
||||
if commit_head == commit_upstream:
|
||||
@@ -113,11 +104,11 @@ def get_changed_files(removed=True, print_info=True):
|
||||
else:
|
||||
# otherwise compare with latest common ancestor
|
||||
commit = run_git(["merge-base", branch_upstream, "HEAD"])[:-1]
|
||||
log_info("comparing HEAD with: " + commit)
|
||||
print("comparing HEAD with: " + commit)
|
||||
|
||||
# Changed files
|
||||
ret = set()
|
||||
log_info("changed file(s):")
|
||||
print("changed file(s):")
|
||||
for file in run_git(["diff", "--name-only", commit, "HEAD"]).splitlines():
|
||||
message = " " + file
|
||||
if not os.path.exists(file):
|
||||
@@ -126,7 +117,7 @@ def get_changed_files(removed=True, print_info=True):
|
||||
ret.add(file)
|
||||
else:
|
||||
ret.add(file)
|
||||
log_info(message)
|
||||
print(message)
|
||||
return ret
|
||||
|
||||
|
||||
@@ -164,9 +155,9 @@ def get_changed_packages_sanity_check(count):
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def get_changed_packages_paths(print_info=False):
|
||||
def get_changed_packages():
|
||||
ret = set()
|
||||
for file in get_changed_files(print_info=print_info):
|
||||
for file in get_changed_files():
|
||||
dirname, filename = os.path.split(file)
|
||||
|
||||
# Skip files:
|
||||
@@ -196,15 +187,11 @@ def get_changed_packages_paths(print_info=False):
|
||||
elif not os.path.exists(file):
|
||||
continue # APKBUILD was deleted
|
||||
|
||||
ret.add(dirname)
|
||||
ret.add(os.path.basename(dirname))
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def get_changed_packages():
|
||||
return set(map(lambda p: os.path.basename(p), iter(get_changed_packages_paths(print_info=True))))
|
||||
|
||||
|
||||
def get_changed_kernels():
|
||||
ret = []
|
||||
for pkgname in get_changed_packages():
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/sh -ex
|
||||
# Copies packages from previous build artifacts into the
|
||||
# local binary repo
|
||||
|
||||
ARCH="$1"
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
echo "Usage: $0 <arch>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p /home/pmos/.local/var/pmbootstrap/packages/edge/"$ARCH"
|
||||
cp packages/edge/"$ARCH"/*.apk /home/pmos/.local/var/pmbootstrap/packages/edge/"$ARCH"
|
||||
chown -R 12345:12345 /home/pmos/.local/var/pmbootstrap/packages/edge/"$ARCH"
|
||||
sudo -u pmos -- pmbootstrap index
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Generate a gitlab CI yaml file for the integration tests pipeline
|
||||
# Configures the parallel:matrix variables for the install/upgrade jobs
|
||||
# based on the union of all the "test-upgrade" configs in the affected APKBUILDs.
|
||||
# And the boot matrix based on the "test-boot" config.
|
||||
|
||||
# use the matrix variables in the needs: section to sequence the 3 jobs, otherwise
|
||||
# spawn a pipeline for each device (yikes).
|
||||
|
||||
import os
|
||||
import sys
|
||||
import glob
|
||||
import json
|
||||
|
||||
import common
|
||||
|
||||
# Get modified packages
|
||||
common.add_upstream_git_remote()
|
||||
pkgs = common.get_changed_packages_paths()
|
||||
|
||||
devices = {}
|
||||
|
||||
|
||||
# We support using "main" as a shortcut for main devices
|
||||
def get_device_variants(devices):
|
||||
_devices = []
|
||||
for d in devices:
|
||||
if d == "main":
|
||||
_devices += list(map(lambda x: os.path.basename(x).split("-", 1)[-1],
|
||||
glob.iglob(os.path.join(common.get_pmaports_dir(),
|
||||
"device", "main", "device-*"))))
|
||||
else:
|
||||
_devices.append(d)
|
||||
|
||||
return _devices
|
||||
|
||||
|
||||
# YIKES
|
||||
def get_device_arch(device):
|
||||
return common.run_cmd(["sh", "-c",
|
||||
f"""source {glob.glob(os.path.join(common.get_pmaports_dir(),
|
||||
'device', '*', f'device-{device}'))[0]}/deviceinfo; echo $deviceinfo_arch"""]).strip()
|
||||
|
||||
|
||||
# Add a device that we should test upgrading pkg on
|
||||
def add_devices(pkg, devices_upgrade, devices_boot):
|
||||
devices_upgrade = get_device_variants(devices_upgrade)
|
||||
devices_boot = get_device_variants(devices_boot)
|
||||
print(f"Devices for {pkg}: {devices_upgrade} {devices_boot}")
|
||||
for d in set(devices_upgrade + devices_boot):
|
||||
if d not in devices.keys():
|
||||
devices[d] = {"upgrade": False, "boot": False, "arch": get_device_arch(d)}
|
||||
|
||||
if d in devices_boot:
|
||||
devices[d]["boot"] = True
|
||||
if d in devices_upgrade:
|
||||
devices[d]["upgrade"] = True
|
||||
|
||||
|
||||
def parse_device_list(key):
|
||||
cfg = line.split(":")[-1]
|
||||
if cfg == f"# {key}:":
|
||||
print(f"Invalid test-upgrade config in {apkbuild}")
|
||||
sys.exit(1)
|
||||
return cfg.strip().split()
|
||||
|
||||
|
||||
# Get the union of all the test-upgrade configs
|
||||
for pkg in pkgs:
|
||||
apkbuild = os.path.join(pkg, "APKBUILD")
|
||||
with open(apkbuild) as f:
|
||||
# ALWAYS test on qemu
|
||||
upgrade_devices = ["qemu-aarch64", "qemu-amd64"]
|
||||
boot_devices = []
|
||||
for line in f:
|
||||
if line != "\n" and line[0] != "#":
|
||||
break
|
||||
if line.startswith("# test-upgrade"):
|
||||
upgrade_devices += parse_device_list("test-upgrade")
|
||||
if line.startswith("# test-boot"):
|
||||
boot_devices += parse_device_list("test-boot")
|
||||
add_devices(os.path.basename(pkg), upgrade_devices, boot_devices)
|
||||
|
||||
print(json.dumps(devices, indent=4))
|
||||
|
||||
# Generate the yaml
|
||||
template = open(os.path.join(os.path.dirname(__file__), "test-pipeline.template.yml")).read()
|
||||
matrix = ""
|
||||
for (device, cfg) in devices.items():
|
||||
# FIXME: riscv64 is not well supported..
|
||||
if cfg["arch"] == "riscv64":
|
||||
continue
|
||||
boot = "true" if cfg["boot"] and "qemu" in device else "false"
|
||||
upgrade = "true" if cfg["upgrade"] else "false"
|
||||
print(f"Adding {device} to matrix, upgrade test: {upgrade}, boot test: {boot}")
|
||||
matrix += f""" - DEVICE: {device}
|
||||
UPGRADE_TEST: \"{upgrade}\"
|
||||
BOOT_TEST: \"{boot}\"
|
||||
BUILD_ARCH_JOB: build-{cfg["arch"]}
|
||||
"""
|
||||
|
||||
variables = f" PACKAGES: {' '.join(map(lambda x: os.path.basename(x), pkgs))}\n"
|
||||
|
||||
f = open("test-pipeline.yml", "w")
|
||||
f.write(template.replace("{{ matrix }}", matrix)
|
||||
.replace("{{ variables }}", variables))
|
||||
f.close()
|
||||
@@ -1,123 +0,0 @@
|
||||
# TEMPLATE pipeline for integration tests
|
||||
image: alpine:latest
|
||||
after_script:
|
||||
- .ci/lib/move_logs.sh $CI_PROJECT_DIR
|
||||
|
||||
variables:
|
||||
PYTHONUNBUFFERED: 1
|
||||
# This includes a hack to install the packages that were built in a previous
|
||||
# pipeline (with different signing keys). As for some reason even though we
|
||||
# replace the signing keys in pmbootstrap with the ones from the previous job
|
||||
# BEFORE creating the chroot, apk still rejects the packages :(
|
||||
PMBOOTSTRAP_URL: https://gitlab.com/sdm845-mainline/pmbootstrap.git
|
||||
PMBOOTSTRAP_TAG: caleb/allow-untrusted-hack
|
||||
# defines PACKAGES
|
||||
{{ variables }}
|
||||
|
||||
# Variables DEVICE, UPGRADE_TEST, and BOOT_TEST are set in the
|
||||
# parallel matrix below.
|
||||
|
||||
stages:
|
||||
- install
|
||||
- upgrade
|
||||
- boot
|
||||
|
||||
workflow:
|
||||
name: "Testing for $PACKAGES"
|
||||
# Default rules for all jobs
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "parent_pipeline"
|
||||
|
||||
install:
|
||||
# tags:
|
||||
# - kvm
|
||||
stage: install
|
||||
# So we can fetch the packages that were built in the parent pipeline
|
||||
# and install them in the chroot
|
||||
needs:
|
||||
- pipeline: $PARENT_PIPELINE_ID
|
||||
job: $BUILD_ARCH_JOB
|
||||
before_script:
|
||||
- apk add curl sudo
|
||||
# Avoid using the local pmaports checkout so we don't build packages (and sidestep annoying permissions issues)
|
||||
- (cd /tmp ; curl -fsSL "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh" | sh)
|
||||
# Use the same keys as the build job so we can generate an index
|
||||
- mkdir -p /home/pmos/.local/var/pmbootstrap/config_abuild/
|
||||
- mv packages/config_abuild/* /home/pmos/.local/var/pmbootstrap/config_abuild/
|
||||
- chown -R 12345:12345 /home/pmos/.local/var/pmbootstrap/config_abuild
|
||||
- sudo -u pmos -- pmbootstrap config device ${DEVICE}
|
||||
# Use the console UI so we pull in some additional system packages
|
||||
- sudo -u pmos -- pmbootstrap config ui console
|
||||
# For QEMU (ignored for other devices)
|
||||
- sudo -u pmos -- pmbootstrap config kernel virt
|
||||
script:
|
||||
- ARCH=${BUILD_ARCH_JOB##build-}
|
||||
# For now we only support packages that are pulled in automatically for the device.
|
||||
# Introducing support for testing packages that must be explicitly installed requires
|
||||
# having a job per package and doing dependency/conflict resolution.
|
||||
- .ci/lib/copy-in-packages.sh $ARCH
|
||||
- sudo -u pmos -- pmbootstrap install --no-image --password 147147
|
||||
artifacts:
|
||||
when: on_failure
|
||||
paths:
|
||||
- log.txt
|
||||
- pmbootstrap.cfg
|
||||
expire_in: 1 week
|
||||
parallel:
|
||||
matrix:
|
||||
{{ matrix }}
|
||||
|
||||
upgrade:
|
||||
# tags:
|
||||
# - kvm
|
||||
stage: upgrade
|
||||
# So we can fetch the packages that were built in the parent pipeline
|
||||
# and install them in the chroot
|
||||
needs:
|
||||
- pipeline: $PARENT_PIPELINE_ID
|
||||
job: $BUILD_ARCH_JOB
|
||||
rules:
|
||||
- if: $UPGRADE_TEST == "true"
|
||||
before_script:
|
||||
- apk add curl sudo
|
||||
# Avoid using the local pmaports checkout so we don't build packages (and sidestep annoying permissions issues)
|
||||
- (cd /tmp ; curl -fsSL "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh" | sh)
|
||||
# Use the same keys as the build job so we can generate an index
|
||||
- mkdir -p /home/pmos/.local/var/pmbootstrap/config_abuild/
|
||||
- mv packages/config_abuild/* /home/pmos/.local/var/pmbootstrap/config_abuild/
|
||||
- chown -R 12345:12345 /home/pmos/.local/var/pmbootstrap/config_abuild
|
||||
- sudo -u pmos -- pmbootstrap -y zap -a
|
||||
- sudo -u pmos -- pmbootstrap config device ${DEVICE}
|
||||
# Use the console UI so we pull in some additional system packages
|
||||
- sudo -u pmos -- pmbootstrap config ui console
|
||||
script:
|
||||
- ARCH=${BUILD_ARCH_JOB##build-}
|
||||
# For now we only support packages that are pulled in automatically for the device.
|
||||
# Introducing support for testing packages that must be explicitly installed requires
|
||||
# having a job per package and doing dependency/conflict resolution.
|
||||
- sudo -u pmos -- pmbootstrap install --no-image --password 147147
|
||||
- .ci/lib/copy-in-packages.sh $ARCH
|
||||
- sudo -u pmos -- pmbootstrap chroot -r -- apk upgrade -a --allow-untrusted
|
||||
artifacts:
|
||||
when: on_failure
|
||||
paths:
|
||||
- log.txt
|
||||
- pmbootstrap.cfg
|
||||
expire_in: 1 week
|
||||
parallel:
|
||||
matrix:
|
||||
{{ matrix }}
|
||||
|
||||
boot:
|
||||
# tags:
|
||||
# - kvm
|
||||
stage: boot
|
||||
rules:
|
||||
- if: $BOOT_TEST == "true"
|
||||
script:
|
||||
- echo boot
|
||||
parallel:
|
||||
matrix:
|
||||
{{ matrix }}
|
||||
|
||||
|
||||
+1
-2
@@ -23,7 +23,6 @@ sh_files="
|
||||
./main/postmarketos-initramfs/init.sh
|
||||
./main/postmarketos-initramfs/init_functions.sh
|
||||
./main/postmarketos-mkinitfs-hook-debug-shell/20-debug-shell.sh
|
||||
./main/postmarketos-mkinitfs-hook-debug-shell/setup_usb_storage.sh
|
||||
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
|
||||
./main/postmarketos-update-kernel/update-kernel.sh
|
||||
./main/ttyescape/*.post-install
|
||||
@@ -49,5 +48,5 @@ sh_files="
|
||||
for file in $sh_files; do
|
||||
echo "Test with shellcheck: $file"
|
||||
cd "$DIR/$(dirname "$file")"
|
||||
shellcheck -e SC1008 -e SC3043 -x "$(basename "$file")"
|
||||
shellcheck -e SC1008 -x "$(basename "$file")"
|
||||
done
|
||||
@@ -7,7 +7,7 @@ import sys
|
||||
import os
|
||||
import importlib
|
||||
import importlib.util
|
||||
from site import getsitepackages
|
||||
from distutils.sysconfig import get_python_lib
|
||||
|
||||
|
||||
def path_pmbootstrap():
|
||||
@@ -24,14 +24,13 @@ def path_pmbootstrap():
|
||||
sys.exit(1)
|
||||
|
||||
# Resolve the symlink and verify the folder
|
||||
directory = os.path.dirname(os.path.realpath(bin))
|
||||
if os.path.exists(directory + "/pmb/__init__.py"):
|
||||
return directory
|
||||
dir = os.path.dirname(os.path.realpath(bin))
|
||||
if os.path.exists(dir + "/pmb/__init__.py"):
|
||||
return dir
|
||||
|
||||
directories = getsitepackages()
|
||||
for directory in directories:
|
||||
if os.path.exists(directory + "/pmb/__init__.py"):
|
||||
return directory
|
||||
dir = get_python_lib()
|
||||
if os.path.exists(dir + "/pmb/__init__.py"):
|
||||
return dir
|
||||
|
||||
# Symlink not set up properly
|
||||
print("ERROR: 'pmbootstrap' is not a symlink to pmbootstrap.py")
|
||||
|
||||
+35
-51
@@ -7,20 +7,30 @@ after_script:
|
||||
stages:
|
||||
- lint
|
||||
- build
|
||||
- test
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
# defaults for "only"
|
||||
# We need to run the CI jobs in a "merge request specific context", if CI is
|
||||
# running in a merge request. Otherwise the environment variable that holds the
|
||||
# merge request ID is not available. This means, we must set the "only"
|
||||
# variable accordingly - and if we only do it for one job, all other jobs will
|
||||
# not get executed. So have the defaults here, and use them in all jobs that
|
||||
# should run on both the master branch, and in merge requests.
|
||||
# https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html#excluding-certain-jobs
|
||||
.only-default: &only-default
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
- tags
|
||||
|
||||
# device documentation
|
||||
wiki:
|
||||
stage: lint
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
changes:
|
||||
- device/*/device-*/*
|
||||
<<: *only-default
|
||||
only:
|
||||
refs:
|
||||
- merge_requests
|
||||
changes:
|
||||
- device/*/device-*/*
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/wiki.sh
|
||||
@@ -28,8 +38,10 @@ wiki:
|
||||
# testcases linting
|
||||
flake8:
|
||||
stage: lint
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
<<: *only-default
|
||||
only:
|
||||
refs:
|
||||
- merge_requests
|
||||
changes:
|
||||
- .ci/*
|
||||
- .ci/*/*
|
||||
@@ -42,15 +54,16 @@ flake8:
|
||||
# shellcheck and various grep checks
|
||||
shellcheck-grep:
|
||||
stage: lint
|
||||
<<: *only-default
|
||||
image: alpine:edge
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/shellcheck.sh
|
||||
- .ci/grep.sh
|
||||
- .ci/codeowners.sh
|
||||
|
||||
editor-config:
|
||||
stage: lint
|
||||
<<: *only-default
|
||||
image: alpine:edge
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
@@ -59,6 +72,7 @@ editor-config:
|
||||
# aports checks (generic)
|
||||
pytest-commits:
|
||||
stage: lint
|
||||
<<: *only-default
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/pytest.sh
|
||||
@@ -77,15 +91,17 @@ aport-lint:
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/apkbuild-lint.sh
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
only:
|
||||
- merge_requests
|
||||
allow_failure: true
|
||||
|
||||
# kernel kconfig check
|
||||
kernel-kconfig:
|
||||
stage: lint
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
- merge_requests
|
||||
changes:
|
||||
- device/*/linux-*/config-*
|
||||
- main/linux-*/config-*
|
||||
@@ -97,8 +113,8 @@ kernel-kconfig:
|
||||
# (Checks for "Allow commits from members who can merge to the target branch")
|
||||
mr-settings:
|
||||
stage: lint
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
only:
|
||||
- merge_requests
|
||||
before_script:
|
||||
- apk -q add python3
|
||||
script:
|
||||
@@ -108,14 +124,11 @@ mr-settings:
|
||||
# build changed aports
|
||||
.build:
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
<<: *only-default
|
||||
before_script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
after_script:
|
||||
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
|
||||
- cp -r /home/pmos/.local/var/pmbootstrap/config_abuild packages/ || true
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
@@ -151,32 +164,3 @@ build-riscv64:
|
||||
extends: .build
|
||||
script:
|
||||
- .ci/build-riscv64.sh
|
||||
|
||||
# Generate the test pipeline
|
||||
generate-test-pipeline:
|
||||
stage: test
|
||||
# Only test in MRs or when pushing to a stable release branch
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_COMMIT_REF_PROTECTED == 'true' && $CI_COMMIT_BRANCH != '$CI_DEFAULT_BRANCH'
|
||||
before_script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
script:
|
||||
- .ci/generate-test-pipeline.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- test-pipeline.yml
|
||||
|
||||
Run tests:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_COMMIT_REF_PROTECTED == 'true' && $CI_COMMIT_BRANCH != '$CI_DEFAULT_BRANCH'
|
||||
needs:
|
||||
- job: generate-test-pipeline
|
||||
artifacts: true
|
||||
trigger:
|
||||
include:
|
||||
- artifact: test-pipeline.yml
|
||||
job: generate-test-pipeline
|
||||
variables:
|
||||
PARENT_PIPELINE_ID: $CI_PIPELINE_ID
|
||||
@@ -21,8 +21,8 @@
|
||||
Replace space inside `[ ]` with `x` to fill the checkbox
|
||||
-->
|
||||
* [ ] edge (`master` branch)
|
||||
* [ ] `v23.12`
|
||||
* [ ] `v23.06` (supported until 2024-01-18)
|
||||
* [ ] `v23.06`
|
||||
* [ ] `v22.12` (Supported until 2023-07-06)
|
||||
|
||||
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
|
||||
|
||||
|
||||
+50
-21
@@ -7,53 +7,82 @@ device/*/*-purism-librem5/ @craftyguy @bshah
|
||||
device/*/device-lg-judyln/ @Newbyte
|
||||
device/*/device-samsung-m0/ @Newbyte
|
||||
device/*/linux-postmarketos-exynos4/ @Newbyte
|
||||
device/*/linux-postmarketos-qcom-msm8939/ @Newbyte
|
||||
device/*/linux-postmarketos-msm8939/ @Newbyte
|
||||
device/*/linux-postmarketos-stericsson/ @Newbyte
|
||||
device/*/*-qcom-sdm845/ @sdm845-mainline
|
||||
device/*/*-xiaomi-beryllium/ @joelselvaraj
|
||||
device/*/*-xiaomi-berrylium/ @joelselvaraj
|
||||
device/*/device-oneplus-enchilada/ @calebccff
|
||||
device/*/device-oneplus-fajita/ @calebccff
|
||||
device/*/firmware-oneplus-sdm845/ @calebccff
|
||||
device/*/device-shift-axolotl/ @amartinz @calebccff @dylanvanassche
|
||||
device/*/*-lenovo-21bx/ @craftyguy
|
||||
device/*/*-lenovo-a6010/ @jenneron
|
||||
device/*/*-lenovo-a6000/ @jenneron
|
||||
device/*/device-microsoft-surface-rt/ @jenneron
|
||||
device/*/device-google-fennel/ @jenneron
|
||||
device/*/device-google-veyron-minnie/ @jenneron
|
||||
device/*/device-google-burnet/ @jenneron
|
||||
device/*/device-google-elm/ @jenneron
|
||||
device/*/device-google-nyan-big/ @jenneron
|
||||
device/*/device-google-peach-pi/ @jenneron
|
||||
device/*/device-google-veyron-speedy/ @jenneron
|
||||
device/*/linux-google-veyron/ @jenneron
|
||||
device/*/u-boot-peach-pi/ @jenneron
|
||||
device/*/device-google-cozmo/ @jenneron
|
||||
device/*/u-boot-veyron-speedy/ @jenneron
|
||||
device/*/device-google-juniper/ @jenneron @binarycraft
|
||||
device/*/u-boot-peach-pit/ @jenneron
|
||||
device/*/device-google-damu/ @jenneron
|
||||
device/*/u-boot-nyan-4gb/ @jenneron
|
||||
device/*/device-google-kenzo/ @jenneron
|
||||
device/*/device-google-kodama/ @jenneron
|
||||
device/*/u-boot-snow/ @jenneron
|
||||
device/*/device-google-kevin/ @jenneron
|
||||
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
|
||||
device/*/device-google-krane/ @jenneron
|
||||
device/*/soc-mediatek-mt8183/ @jenneron
|
||||
device/*/u-boot-veyron-minnie/ @jenneron
|
||||
device/*/device-google-fennel14/ @jenneron
|
||||
device/*/linux-google-nyan/ @jenneron
|
||||
device/*/device-google-willow/ @jenneron
|
||||
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron
|
||||
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
|
||||
device/*/device-google-nyan-blaze/ @jenneron
|
||||
device/*/firmware-powervr-gx6250/ @jenneron
|
||||
device/*/device-google-hana/ @jenneron
|
||||
device/*/device-google-snow/ @jenneron
|
||||
device/*/device-google-kappa/ @jenneron
|
||||
device/*/u-boot-nyan-2gb/ @jenneron
|
||||
device/*/device-google-veyron-jerry/ @jenneron
|
||||
device/*/device-google-kakadu/ @jenneron
|
||||
device/*/firmware-google-veyron-brcm/ @jenneron
|
||||
device/*/device-google-peach-pit/ @jenneron
|
||||
device/*/device-lg-judyp/ @jenneron
|
||||
device/*/device-asus-tf201/ @clamor95
|
||||
device/*/device-asus-tf300t/ @clamor95
|
||||
device/*/device-asus-tf300tg/ @clamor95
|
||||
device/*/device-asus-tf700t/ @clamor95
|
||||
device/*/device-lg-p895/ @clamor95
|
||||
device/*/firmware-asus-transformer/ @clamor95 @jenneron
|
||||
device/*/firmware-lg-x3/ @clamor95
|
||||
device/*/linux-postmarketos-grate/ @clamor95 @jenneron
|
||||
device/*/device-samsung-chagallwifi/ @Grimler
|
||||
device/*/device-odroid-xu4/ @Grimler
|
||||
device/*/device-samsung-klimtlte/ @Grimler
|
||||
device/*/linux-samsung-klimtlte/ @Grimler
|
||||
device/*/firmware-odroid-xu4/ @Grimler
|
||||
device/*/linux-samsung-chagallwifi/ @Grimler
|
||||
device/*/device-huawei-plank/ @gtrxAC
|
||||
device/*/linux-huawei-plank/ @gtrxAC
|
||||
device/*/device-samsung-coreprimevelte/ @legolivesmatter @balejk
|
||||
device/*/linux-samsung-coreprimevelte/ @legolivesmatter @balejk
|
||||
device/*/device-samsung-chagallwifi @Grimler
|
||||
device/*/device-odroid-xu4 @Grimler
|
||||
device/*/device-samsung-klimtlte @Grimler
|
||||
device/*/linux-samsung-klimtlte @Grimler
|
||||
device/*/firmware-odroid-xu4 @Grimler
|
||||
device/*/linux-samsung-chagallwifi @Grimler
|
||||
device/*/device-huawei-plank @gtrxAC
|
||||
device/*/linux-huawei-plank @gtrxAC
|
||||
|
||||
main/postmarketos-update-depthcharge-kernel/ @jenneron
|
||||
main/osk-sdl/ @craftyguy
|
||||
main/postmarketos-ui-plasma-mobile/ @bshah
|
||||
main/ttyescape/ @calebccff
|
||||
device/*/u-boot-librem5/ @craftyguy @bshah
|
||||
device/*/alsa-ucm-conf-google-kukui/ @jenneron @binarycraft
|
||||
device/*/alsa-ucm-conf-google-gru/ @jenneron
|
||||
device/*/*-videostrong-kii-pro/ @vitali64yt
|
||||
device/*/*-amlogic-s905*/ @vitali64yt
|
||||
device/*/linux-postmarketos-amlogic/ @vitali64yt @exkc
|
||||
main/postmarketos-ui-plasma-mobile/ @bshah
|
||||
main/ttyescape @calebccff
|
||||
temp/u-boot-librem5/ @craftyguy @bshah
|
||||
temp/alsa-ucm-conf-google-kukui/ @jenneron @binarycraft
|
||||
temp/alsa-ucm-conf-google-gru/ @jenneron
|
||||
device/*/*-videostrong-kii-pro/ @vitali64yt
|
||||
device/*/*-amlogic-s905* @vitali64yt
|
||||
device/*/linux-postmarketos-amlogic/ @vitali64yt @exkc
|
||||
|
||||
# vim: ts=8 sw=4 et
|
||||
+1
-7
@@ -8,14 +8,8 @@ branch_pmaports=master
|
||||
branch_aports=master
|
||||
mirrordir_alpine=edge
|
||||
|
||||
[v23.12]
|
||||
description=Latest release / Recommended for best stability
|
||||
branch_pmaports=v23.12
|
||||
branch_aports=3.19-stable
|
||||
mirrordir_alpine=v3.19
|
||||
|
||||
[v23.06]
|
||||
description=Old release (supported until 2024-01-18)
|
||||
description=Latest release / Recommended for best stability
|
||||
branch_pmaports=v23.06
|
||||
branch_aports=3.18-stable
|
||||
mirrordir_alpine=v3.18
|
||||
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-aarch64
|
||||
pkgver=1.36.1
|
||||
pkgrel=18
|
||||
pkgrel=4
|
||||
|
||||
_arch="aarch64"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
08f68b23bd880be12f95c5e1f071891f6b658fe7576f63d54e71d7390e4afc58de01813b2ea628f2b062830a89b0f69e8bd8a2b15fdb08bb9aba9e2a08971b0b busybox-static-1.36.1-r18-aarch64-edge.apk
|
||||
c0ea71bcec70e35de3dcb919c22c02afe7e35b3168845209e93bcd15ff380d62dc807848e36e1e5fef22c16adbbdfc1dc3a3559015d0c4a3b2978e0e303d4413 busybox-static-1.36.1-r4-aarch64-edge.apk
|
||||
"
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-armhf
|
||||
pkgver=1.36.1
|
||||
pkgrel=18
|
||||
pkgrel=4
|
||||
|
||||
_arch="armhf"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
20b11081b5d1f25298fd4d8dfde51062f5c65060f5b53840eaad6fb69b94d64c5f5e522c9286f9a56cef4a9c88bdf53dcd385f47451b1563faf2058f1ea928cb busybox-static-1.36.1-r18-armhf-edge.apk
|
||||
701ee52541aee37a075563c430b891860afd205e4446379a4686b3eac57ce8443c1203b06fb90f146c88064e00d99101c86d0d8b3a91377e465d46958c942366 busybox-static-1.36.1-r4-armhf-edge.apk
|
||||
"
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-armv7
|
||||
pkgver=1.36.1
|
||||
pkgrel=18
|
||||
pkgrel=4
|
||||
|
||||
_arch="armv7"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
8f2fa87d979bdbe88eef0b9dece61001998df960e025902854b2af415b96d63ce9831dbe44d5c32b671c313efdfe9e22743a26de73febcc92d8d45d944ad66c0 busybox-static-1.36.1-r18-armv7-edge.apk
|
||||
e01fdc7edfe06b9b8c30acb0df90f026c49982d378724c8afd4e545f5ab7e9d317a9fd8e1e7ae06d3f89e3ddf5e572ad3f7d2d033225f195d5bc7530e6e4bcd2 busybox-static-1.36.1-r4-armv7-edge.apk
|
||||
"
|
||||
+12
-18
@@ -1,6 +1,3 @@
|
||||
# Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
|
||||
# https://wiki.postmarketos.org/wiki/Pmbootstrap:_Cross_Compiling
|
||||
#
|
||||
# Wrapper for the "crossdirect" compilation method.
|
||||
# pmbootstrap mounts the native chroot in the foreign arch (e.g. armhf) chroot
|
||||
# as /native. This package gets installed into the native chroot, and creates
|
||||
@@ -19,14 +16,14 @@
|
||||
# version is implemented as simple shell wrappers.
|
||||
|
||||
pkgname=crossdirect
|
||||
pkgver=5.1.0
|
||||
pkgrel=0
|
||||
pkgver=4
|
||||
pkgrel=3
|
||||
pkgdesc="Wrappers to launch native cross compilers in foreign chroots"
|
||||
url="https://postmarketOS.org"
|
||||
arch="all"
|
||||
license="MIT"
|
||||
options="!check"
|
||||
source="cargo.sh crossdirect.c rustc.sh rust-qemu-linker.sh"
|
||||
source="crossdirect.c rustc.sh rust-qemu-linker.sh"
|
||||
|
||||
build() {
|
||||
cd "$srcdir"
|
||||
@@ -43,6 +40,9 @@ build() {
|
||||
-Werror \
|
||||
-DHOSTSPEC="\"$_hostspec\"" \
|
||||
crossdirect.c
|
||||
|
||||
# rustc
|
||||
sed "s/@ARCH@/$_arch/g" rustc.sh >rustc-"$_arch"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -51,11 +51,9 @@ package() {
|
||||
_archs="x86_64 armhf armv7 aarch64"
|
||||
_bins="c++ cc cpp g++ gcc clang clang++"
|
||||
|
||||
# Rust wrappers
|
||||
# Rust: qemu-linker
|
||||
install -Dm755 "$srcdir/rust-qemu-linker.sh" \
|
||||
"$pkgdir/usr/lib/crossdirect/rust-qemu-linker"
|
||||
install -Dm755 "$srcdir/cargo.sh" "$pkgdir/usr/lib/crossdirect/cargo.sh"
|
||||
install -Dm755 "$srcdir/rustc.sh" "$pkgdir/usr/lib/crossdirect/rustc.sh"
|
||||
|
||||
# Iterate over architectures
|
||||
for _arch in $_archs; do
|
||||
@@ -75,14 +73,10 @@ package() {
|
||||
ln -s "crossdirect-$_arch" "$_hostspec-$_bin"
|
||||
done
|
||||
|
||||
ln -s ../cargo.sh cargo
|
||||
ln -s ../rustc.sh rustc
|
||||
# Rust: arch-specific rustc wrapper
|
||||
install -Dm755 "$srcdir/rustc-$_arch" "$_bindir/rustc"
|
||||
done
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
0f4b48f250425dc57f63955fc8b38477d23db793bee367c3fbe03c3d2a559ba576434d07518310db4cae9d90d501af4051b80038b10fae94b980e537fc9374ad cargo.sh
|
||||
500107e5aff8b34e74b54982ebcd447fc41bc8283956d506561b031a055cb30ec12698047c2604918b4b6d8560fe03db427a63dff2b83c907e8494b7f5233f29 crossdirect.c
|
||||
de2aa6929bbff5db9132673e667f4525b333d062cb1f7a0597dd924de9e5c7215a9f8e2e6263b6fb5ace06f2c4b64f4ebfd0ede9b78add07c2cd08ec8613e98f rustc.sh
|
||||
ea9bf8db3810d03d0a7395057f3d6e57f7127d87c55deaedc171c255288f5f3cc6fbcc680a5a1b92786cf573875d5dc22521173799fe2639acc97d0715ff905b rust-qemu-linker.sh
|
||||
"
|
||||
sha512sums="500107e5aff8b34e74b54982ebcd447fc41bc8283956d506561b031a055cb30ec12698047c2604918b4b6d8560fe03db427a63dff2b83c907e8494b7f5233f29 crossdirect.c
|
||||
6be16ba88720e628a3ecc8fa53f8e7a21d2af268b0509745d989139874d6b94b640bfcff09575eaa19073810be6ef91169c1f83e94f5cf8e6819f2670d9408de rustc.sh
|
||||
ea9bf8db3810d03d0a7395057f3d6e57f7127d87c55deaedc171c255288f5f3cc6fbcc680a5a1b92786cf573875d5dc22521173799fe2639acc97d0715ff905b rust-qemu-linker.sh"
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ -n "$CROSSDIRECT_DEBUG" ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
native_version=$(LD_LIBRARY_PATH=/native/lib:/native/usr/lib /native/usr/bin/rustc -V)
|
||||
target_version=$(/usr/bin/rustc -V)
|
||||
|
||||
if [ "$target_version" != "$native_version" ]; then
|
||||
echo "ERROR: crossdirect: rustc version mismatch between native and build chroot. Please update your chroots and try again." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
triplet=$(/usr/bin/rustc -vV | sed -n 's/host: //p')
|
||||
cmd=$1
|
||||
shift
|
||||
|
||||
case "$cmd" in
|
||||
build|test|run)
|
||||
;;
|
||||
*)
|
||||
echo "WARNING: crossdirect: 'cargo $cmd $*' command not supported, running in QEMU (slow!)" >&2
|
||||
export PATH="$(echo "$PATH" | sed 's,/native/usr/lib/crossdirect/[^:]*:,,')"
|
||||
exec /usr/bin/cargo "$cmd" "$@"
|
||||
;;
|
||||
esac
|
||||
|
||||
target_dir=${CARGO_TARGET_DIR:-target}
|
||||
target_already_specified=${CARGO_BUILD_TARGET:+1}
|
||||
|
||||
if [ -z "$target_specified" ]; then
|
||||
for arg in "$@"; do
|
||||
if [ "$arg_target_dir" = 1 ]; then
|
||||
target_dir=$arg
|
||||
arg_target_dir=0
|
||||
fi
|
||||
case "$arg" in
|
||||
--target|--target=*)
|
||||
target_already_specified=1
|
||||
break
|
||||
;;
|
||||
--target-dir)
|
||||
arg_target_dir=1
|
||||
;;
|
||||
--target-dir=*)
|
||||
target_dir=${arg##--target-dir=}
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -n "$target_already_specified" ]; then
|
||||
exec /usr/bin/cargo "$cmd" "$@"
|
||||
fi
|
||||
|
||||
/usr/bin/cargo "$cmd" --target=$triplet "$@"
|
||||
|
||||
# copy target/$triplet/{release,debug,...} to target/{release,debug,...}
|
||||
if [ -d "$target_dir/$triplet" ]; then
|
||||
for dir in "$target_dir/$triplet"/*/; do
|
||||
build=$(basename "$dir")
|
||||
rm -rf "$target_dir/$build"
|
||||
cp -r "$target_dir/$triplet/$build" "$target_dir/$build"
|
||||
done
|
||||
fi
|
||||
+41
-31
@@ -1,38 +1,48 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ -n "$CROSSDIRECT_DEBUG" ]; then
|
||||
set -x
|
||||
fi
|
||||
rust_triplet() {
|
||||
# Find the triplets in Alpine's rust APKBUILD or with:
|
||||
# pmbootstrap chroot -barmhf --add=rust -- ls /usr/lib/rustlib
|
||||
case "$1" in
|
||||
x86_64)
|
||||
echo "x86_64-alpine-linux-musl"
|
||||
;;
|
||||
armhf)
|
||||
echo "armv6-alpine-linux-musleabihf"
|
||||
;;
|
||||
armv7)
|
||||
echo "armv7-alpine-linux-musleabihf"
|
||||
;;
|
||||
aarch64)
|
||||
echo "aarch64-alpine-linux-musl"
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: don't know the rust triple for $1!" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# return the correct host architecture when cargo requests it
|
||||
if [ "$*" = "-vV" ] || [ "$*" = "-V" ]; then
|
||||
exec /usr/bin/rustc "$*"
|
||||
fi
|
||||
arch="@ARCH@" # filled in by APKBUILD
|
||||
|
||||
# pmbootstrap installs sccache when building a rust program, unless --no-ccache
|
||||
# is set. In that case it also sets CCACHE_DISABLE.
|
||||
SCCACHE=/native/usr/bin/sccache
|
||||
if ! [ -e "$SCCACHE" ] || [ -n "$CCACHE_DISABLE" ]; then
|
||||
SCCACHE=""
|
||||
fi
|
||||
|
||||
# We expect the right target to be set in the arguments if compiling for the
|
||||
# target architecture. Our cargo wrapper passes the right "--target" argument
|
||||
# automatically. If no target is provided, this is probably a macro or a
|
||||
# build script, so it should be compiled for the native architecture.
|
||||
if echo "$*" | grep -qFe "--target"; then
|
||||
# Not using sccache when building for foreign architecture, as it
|
||||
# doesn't cache the output with "Non-cacheable reasons: --sysroot"
|
||||
LD_LIBRARY_PATH=/native/lib:/native/usr/lib \
|
||||
/native/usr/bin/rustc \
|
||||
if ! LD_LIBRARY_PATH=/native/lib:/native/usr/lib \
|
||||
/native/usr/bin/rustc \
|
||||
-Clinker=/native/usr/lib/crossdirect/rust-qemu-linker \
|
||||
--target=$(rust_triplet "$arch") \
|
||||
--sysroot=/usr \
|
||||
"$@"
|
||||
else
|
||||
PATH=/native/usr/bin:/native/bin \
|
||||
LD_LIBRARY_PATH=/native/lib:/native/usr/lib \
|
||||
$SCCACHE \
|
||||
/native/usr/bin/rustc \
|
||||
-Clink-arg=-Wl,-rpath,/native/lib:/native/usr/lib \
|
||||
"$@"
|
||||
"$@"; then
|
||||
echo "---" >&2
|
||||
echo "WARNING: crossdirect: cross compiling with rustc failed, trying"\
|
||||
"again with rustc + qemu" >&2
|
||||
echo "---" >&2
|
||||
# Usually the crossdirect approach works; however, when passing
|
||||
# --extern to rustc with a dynamic library (.so), it fails with an
|
||||
# error like 'can't find crate for `serde_derive`' (although the crate
|
||||
# does exist). I think it fails to parse the metadata of the so file
|
||||
# for some reason. We probably need to adjust rustc's
|
||||
# librustc_metadata/locator.rs or something (and upstream that
|
||||
# change!), but I've spent enough time on this already. Let's simply
|
||||
# fall back to compiling in qemu in the very few cases where this is
|
||||
# necessary.
|
||||
/usr/bin/rustc "$@"
|
||||
fi
|
||||
@@ -1,7 +1,7 @@
|
||||
From 47b4bd4deb2c356bb07d2a96f22127aefafec3a4 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Fri, 26 Jan 2018 20:32:50 +0000
|
||||
Subject: [PATCH 01/35] posix_memalign
|
||||
Subject: [PATCH 01/34] posix_memalign
|
||||
|
||||
---
|
||||
gcc/config/i386/pmm_malloc.h | 9 +++++----
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 29 Mar 2013 08:59:00 +0400
|
||||
Subject: [PATCH 02/35] gcc: poison-system-directories
|
||||
Subject: [PATCH 02/34] gcc: poison-system-directories
|
||||
|
||||
Add /sw/include and /opt/include based on the original
|
||||
zecke-no-host-includes.patch patch. The original patch checked for
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ff4dd4ce33133e675b7bedc86b73357c04631cb9 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:45:49 +0000
|
||||
Subject: [PATCH 03/35] specs: turn on -Wl,-z,now by default
|
||||
Subject: [PATCH 03/34] specs: turn on -Wl,-z,now by default
|
||||
|
||||
Previously, we also used to turn on -z relro here, but we now build
|
||||
binutils with --enable-relro, which is functionally equivalent.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1b315235433701e4a974da259b8d651169ddc7ac Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:46:22 +0000
|
||||
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
Subject: [PATCH 04/34] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
ObjC, ObjC++, if the optimization level is > 0
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 67c0f5789630b27149f60ff831999ef7c1dba5d5 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:46:56 +0000
|
||||
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
|
||||
Subject: [PATCH 05/34] On linux targets pass --as-needed by default to the
|
||||
linker, but always link the sanitizer libraries with --no-as-needed.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From bb25e8489384504cd59e4a2538720863da1fb29c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:47:43 +0000
|
||||
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
|
||||
Subject: [PATCH 06/34] Enable -Wformat and -Wformat-security by default.
|
||||
|
||||
---
|
||||
gcc/c-family/c.opt | 4 ++--
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4a728ad48a7b437cc6f2697e26603bf648149f86 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:48:24 +0000
|
||||
Subject: [PATCH 07/35] Enable -Wtrampolines by default.
|
||||
Subject: [PATCH 07/34] Enable -Wtrampolines by default.
|
||||
|
||||
---
|
||||
gcc/common.opt | 2 +-
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 32f24560d0602f7735d5e9efd92fe3151bd72cea Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:49:40 +0000
|
||||
Subject: [PATCH 08/35] Disable ssp on -nostdlib, -nodefaultlibs and
|
||||
Subject: [PATCH 08/34] Disable ssp on -nostdlib, -nodefaultlibs and
|
||||
-ffreestanding Change the buffer size.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From c7ec8da7280d7f97f5543eb9ddeca7600aafc43c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:50:33 +0000
|
||||
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
|
||||
Subject: [PATCH 09/34] Ensure that msgfmt doesn't encounter problems during
|
||||
gcc bootstrapping.
|
||||
|
||||
Solves error messages like the following:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From aaa029bcee68298695b7c4278c90b6bc320d098c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:52:07 +0000
|
||||
Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
|
||||
Subject: [PATCH 10/34] Don't declare asprintf if defined as a macro.
|
||||
|
||||
---
|
||||
include/libiberty.h | 3 +++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 65e01e749205c9af218b01233cebd0077538d0ee Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:53:00 +0000
|
||||
Subject: [PATCH 11/35] libiberty: copy PIC objects during build process
|
||||
Subject: [PATCH 11/34] libiberty: copy PIC objects during build process
|
||||
|
||||
---
|
||||
libiberty/Makefile.in | 1 +
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 453a815bf2844971a91eaef800af188d9e86b784 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Sat, 24 Oct 2015 20:09:53 +0000
|
||||
Subject: [PATCH 12/35] libgcc_s
|
||||
Subject: [PATCH 12/34] libgcc_s
|
||||
|
||||
---
|
||||
gcc/config/i386/i386-expand.cc | 4 ++--
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7d7d12137c666761a8dd61179c9651b85dae9b41 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Sat, 7 Nov 2015 02:08:05 +0000
|
||||
Subject: [PATCH 13/35] nopie
|
||||
Subject: [PATCH 13/34] nopie
|
||||
|
||||
---
|
||||
gcc/configure | 27 +++++++++++++++++++++++++++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From dd5bb97c31a9f57034c70a7a18ba6e2e133084c7 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:59:16 +0000
|
||||
Subject: [PATCH 14/35] ada: fix shared linking
|
||||
Subject: [PATCH 14/34] ada: fix shared linking
|
||||
|
||||
---
|
||||
gcc/ada/link.c | 12 ++++++------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 6bb5b7d9161d05f31b001d8211a9c63caf63fd2f Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:59:43 +0000
|
||||
Subject: [PATCH 15/35] build: fix CXXFLAGS_FOR_BUILD passing
|
||||
Subject: [PATCH 15/34] build: fix CXXFLAGS_FOR_BUILD passing
|
||||
|
||||
---
|
||||
Makefile.in | 1 +
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From f0d9e00cac06689f64b214de7aee80d7116ef084 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:01:06 +0000
|
||||
Subject: [PATCH 16/35] add fortify-headers paths
|
||||
Subject: [PATCH 16/34] add fortify-headers paths
|
||||
|
||||
---
|
||||
gcc/config/linux.h | 2 ++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 857db04f4f1a06e866551b4172fe8f27363f4a92 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
||||
Date: Fri, 21 Aug 2020 07:03:00 +0000
|
||||
Subject: [PATCH 17/35] Alpine musl package provides libssp_nonshared.a. We
|
||||
Subject: [PATCH 17/34] Alpine musl package provides libssp_nonshared.a. We
|
||||
link to it unconditionally, as otherwise we get link failures if some objects
|
||||
are -fstack-protector built and final link happens with -fno-stack-protector.
|
||||
This seems to be the common case when bootstrapping gcc, the piepatches do
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 5a8347e23ab13912b6edec2c6c6e3a101b017c79 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:03:42 +0000
|
||||
Subject: [PATCH 18/35] DP: Use --push-state/--pop-state for gold as well when
|
||||
Subject: [PATCH 18/34] DP: Use --push-state/--pop-state for gold as well when
|
||||
linking libtsan.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 41d00a2eb0754acf71958808bd17dbebeb517b84 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:12:55 +0000
|
||||
Subject: [PATCH 19/35] aarch64: disable multilib support
|
||||
Subject: [PATCH 19/34] aarch64: disable multilib support
|
||||
|
||||
multilib is unsupported on Alpine GCC
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 85b42bfbba71616831d14360b16998acb28790fd Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:13:59 +0000
|
||||
Subject: [PATCH 20/35] s390x: disable multilib support
|
||||
Subject: [PATCH 20/34] s390x: disable multilib support
|
||||
|
||||
multilib is not supported on Alpine GCC at present
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7b53df284242638e940c0155b6c21e88cea1f55b Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:14:33 +0000
|
||||
Subject: [PATCH 21/35] ppc64[le]: disable multilib support
|
||||
Subject: [PATCH 21/34] ppc64[le]: disable multilib support
|
||||
|
||||
multilib is not presently supported on Alpine GCC
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 96e7e1e9a899d9bb5fcbdf788bd529d0390c626f Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:14:54 +0000
|
||||
Subject: [PATCH 22/35] x86_64: disable multilib support
|
||||
Subject: [PATCH 22/34] x86_64: disable multilib support
|
||||
|
||||
multilib is not presently supported on Alpine GCC
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b26224acf342eacb33491f6ea0da1faf73d35715 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Mon, 3 Jan 2022 07:14:48 +0100
|
||||
Subject: [PATCH 23/35] riscv: disable multilib support
|
||||
Subject: [PATCH 23/34] riscv: disable multilib support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From a72e0613f79f6b6867819317accb7a714031a08c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:05:41 +0000
|
||||
Subject: [PATCH 24/35] always build libgcc_eh.a
|
||||
Subject: [PATCH 24/34] always build libgcc_eh.a
|
||||
|
||||
highly inspired by:
|
||||
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 3ee8cbc1cad261b30d4a7a66d31496d5f243ce2f Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:06:30 +0000
|
||||
Subject: [PATCH 25/35] ada: libgnarl compatibility for musl
|
||||
Subject: [PATCH 25/34] ada: libgnarl compatibility for musl
|
||||
|
||||
---
|
||||
gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 3df4788c79c7429b196c7b284af2b4cf9a4b4f8d Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:07:48 +0000
|
||||
Subject: [PATCH 26/35] ada: musl support fixes
|
||||
Subject: [PATCH 26/34] ada: musl support fixes
|
||||
|
||||
---
|
||||
gcc/ada/Makefile.rtl | 10 +++++-----
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7b50823d8a4131e5a55d2499a0f5a52b3d91eed2 Mon Sep 17 00:00:00 2001
|
||||
From: Drew DeVault <sir@cmpwn.com>
|
||||
Date: Wed, 9 Dec 2020 07:42:06 +0000
|
||||
Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in
|
||||
Subject: [PATCH 27/34] configure: Add --enable-autolink-libatomic, use in
|
||||
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
|
||||
|
||||
This fixes issues with RISC-V.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 5bbbd320e54ab5341cfba83e8af98685131caba1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 29 Aug 2021 12:23:34 +0200
|
||||
Subject: [PATCH 28/35] configure: fix detection of atomic builtins in
|
||||
Subject: [PATCH 28/34] configure: fix detection of atomic builtins in
|
||||
libatomic configure script
|
||||
|
||||
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 430c701a3cefbe09a9c7c8a2f5bbe957f9b2ecb2 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
Date: Thu, 30 Jun 2022 16:44:51 +0000
|
||||
Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
|
||||
Subject: [PATCH 29/34] libstdc++: do not throw exceptions for non-C locales on
|
||||
musl targets
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 05f0043755f341a2ff4f845379327076b3e0203d Mon Sep 17 00:00:00 2001
|
||||
From: Mathias LANG <pro.mathias.lang@gmail.com>
|
||||
Date: Mon, 17 Jan 2022 03:49:21 +0000
|
||||
Subject: [PATCH 30/35] gdc: unconditionally link libgphobos against
|
||||
Subject: [PATCH 30/34] gdc: unconditionally link libgphobos against
|
||||
libucontext
|
||||
|
||||
ref: alpine/aports#13422
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0b89a74fbf77ae6917f043c79cd03db0d6ef0212 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sat, 16 Jul 2022 09:21:11 +0200
|
||||
Subject: [PATCH 31/35] druntime: link against libucontext on all platforms
|
||||
Subject: [PATCH 31/34] druntime: link against libucontext on all platforms
|
||||
|
||||
On musl-based Linux distributions, swapcontext etc. are not provided by
|
||||
musl but instead by libucontext. Hence, we _always_ need to link against
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From eeec799f43fbd0bfffc13594585b39d708972511 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Tue, 19 Jul 2022 14:54:07 +0200
|
||||
Subject: [PATCH 32/35] libgnat: time_t is always 64-bit on musl libc
|
||||
Subject: [PATCH 32/34] libgnat: time_t is always 64-bit on musl libc
|
||||
|
||||
---
|
||||
gcc/ada/libgnat/s-parame.ads | 2 +-
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b71d21b87e6946c763edad5e420bf22d8a453077 Mon Sep 17 00:00:00 2001
|
||||
From: psykose <alice@ayaya.dev>
|
||||
Date: Mon, 29 May 2023 15:33:11 +0000
|
||||
Subject: [PATCH 33/35] libphobos: do not use LFS64 symbols
|
||||
Subject: [PATCH 33/34] libphobos: do not use LFS64 symbols
|
||||
|
||||
musl does not have these since 1.2.4, we can't use the compat interfaces.
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4bfcb35bc43d3e3b7510620362d7c28d9e4c17ca Mon Sep 17 00:00:00 2001
|
||||
From: psykose <alice@ayaya.dev>
|
||||
Date: Mon, 10 Jul 2023 23:23:29 +0000
|
||||
Subject: [PATCH 34/35] libgo: fix lfs64 use
|
||||
Subject: [PATCH 34/34] libgo: fix lfs64 use
|
||||
|
||||
---
|
||||
.../go/internal/syscall/unix/at_largefile.go | 2 +-
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
https://gcc.gnu.org/PR110792
|
||||
https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=790c1f60a5662b16eb19eb4b81922995863c7571
|
||||
https://github.com/randombit/botan/issues/3637
|
||||
|
||||
From 85628c5653ff40963158a24c60eeec6a3b5a8e56 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Sayle <roger@nextmovesoftware.com>
|
||||
Date: Thu, 3 Aug 2023 07:12:04 +0100
|
||||
Subject: [PATCH] PR target/110792: Early clobber issues with
|
||||
rot32di2_doubleword on i386.
|
||||
|
||||
This patch is a conservative fix for PR target/110792, a wrong-code
|
||||
regression affecting doubleword rotations by BITS_PER_WORD, which
|
||||
effectively swaps the highpart and lowpart words, when the source to be
|
||||
rotated resides in memory. The issue is that if the register used to
|
||||
hold the lowpart of the destination is mentioned in the address of
|
||||
the memory operand, the current define_insn_and_split unintentionally
|
||||
clobbers it before reading the highpart.
|
||||
|
||||
Hence, for the testcase, the incorrectly generated code looks like:
|
||||
|
||||
salq $4, %rdi // calculate address
|
||||
movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr
|
||||
movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart
|
||||
|
||||
Traditionally, the textbook way to fix this would be to add an
|
||||
explicit early clobber to the instruction's constraints.
|
||||
|
||||
(define_insn_and_split "<insn>32di2_doubleword"
|
||||
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
|
||||
+ [(set (match_operand:DI 0 "register_operand" "=r,r,&r")
|
||||
(any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
|
||||
(const_int 32)))]
|
||||
|
||||
but unfortunately this currently generates significantly worse code,
|
||||
due to a strange choice of reloads (effectively memcpy), which ends up
|
||||
looking like:
|
||||
|
||||
salq $4, %rdi // calculate address
|
||||
movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg.
|
||||
movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack
|
||||
movq -8(%rsp), %rdi // load highpart
|
||||
movq -16(%rsp), %rbp // load lowpart
|
||||
|
||||
Note that reload's "&" doesn't distinguish between the memory being
|
||||
early clobbered, vs the registers used in an addressing mode being
|
||||
early clobbered.
|
||||
|
||||
The fix proposed in this patch is to remove the third alternative, that
|
||||
allowed offsetable memory as an operand, forcing reload to place the
|
||||
operand into a register before the rotation. This results in:
|
||||
|
||||
salq $4, %rdi
|
||||
movq WHIRL_S(%rdi), %rax
|
||||
movq WHIRL_S+8(%rdi), %rdi
|
||||
movq %rax, %rbp
|
||||
|
||||
I believe there's a more advanced solution, by swapping the order of
|
||||
the loads (if first destination register is mentioned in the address),
|
||||
or inserting a lea insn (if both destination registers are mentioned
|
||||
in the address), but this fix is a minimal "safe" solution, that
|
||||
should hopefully be suitable for backporting.
|
||||
|
||||
2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
|
||||
|
||||
gcc/ChangeLog
|
||||
PR target/110792
|
||||
* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
|
||||
place operand in a register before gen_<insn>64ti2_doubleword.
|
||||
(<any_rotate>di3): Likewise, for rotations by 32 bits, place
|
||||
operand in a register before gen_<insn>32di2_doubleword.
|
||||
(<any_rotate>32di2_doubleword): Constrain operand to be in register.
|
||||
(<any_rotate>64ti2_doubleword): Likewise.
|
||||
|
||||
gcc/testsuite/ChangeLog
|
||||
PR target/110792
|
||||
* g++.target/i386/pr110792.C: New 32-bit C++ test case.
|
||||
* gcc.target/i386/pr110792.c: New 64-bit C test case.
|
||||
|
||||
(cherry picked from commit 790c1f60a5662b16eb19eb4b81922995863c7571)
|
||||
---
|
||||
gcc/config/i386/i386.md | 18 ++++++++++++------
|
||||
gcc/testsuite/g++.target/i386/pr110792.C | 16 ++++++++++++++++
|
||||
gcc/testsuite/gcc.target/i386/pr110792.c | 18 ++++++++++++++++++
|
||||
3 files changed, 46 insertions(+), 6 deletions(-)
|
||||
create mode 100644 gcc/testsuite/g++.target/i386/pr110792.C
|
||||
create mode 100644 gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
|
||||
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
|
||||
index f3a3305..a71e837 100644
|
||||
--- a/gcc/config/i386/i386.md
|
||||
+++ b/gcc/config/i386/i386.md
|
||||
@@ -14359,7 +14359,10 @@
|
||||
emit_insn (gen_ix86_<insn>ti3_doubleword
|
||||
(operands[0], operands[1], operands[2]));
|
||||
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64)
|
||||
- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
|
||||
+ {
|
||||
+ operands[1] = force_reg (TImode, operands[1]);
|
||||
+ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
|
||||
+ }
|
||||
else
|
||||
{
|
||||
rtx amount = force_reg (QImode, operands[2]);
|
||||
@@ -14394,7 +14397,10 @@
|
||||
emit_insn (gen_ix86_<insn>di3_doubleword
|
||||
(operands[0], operands[1], operands[2]));
|
||||
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32)
|
||||
- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
|
||||
+ {
|
||||
+ operands[1] = force_reg (DImode, operands[1]);
|
||||
+ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
|
||||
+ }
|
||||
else
|
||||
FAIL;
|
||||
|
||||
@@ -14562,8 +14568,8 @@
|
||||
})
|
||||
|
||||
(define_insn_and_split "<insn>32di2_doubleword"
|
||||
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
|
||||
- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
|
||||
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
|
||||
+ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r")
|
||||
(const_int 32)))]
|
||||
"!TARGET_64BIT"
|
||||
"#"
|
||||
@@ -14580,8 +14586,8 @@
|
||||
})
|
||||
|
||||
(define_insn_and_split "<insn>64ti2_doubleword"
|
||||
- [(set (match_operand:TI 0 "register_operand" "=r,r,r")
|
||||
- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o")
|
||||
+ [(set (match_operand:TI 0 "register_operand" "=r,r")
|
||||
+ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r")
|
||||
(const_int 64)))]
|
||||
"TARGET_64BIT"
|
||||
"#"
|
||||
diff --git a/gcc/testsuite/g++.target/i386/pr110792.C b/gcc/testsuite/g++.target/i386/pr110792.C
|
||||
new file mode 100644
|
||||
index 0000000..ce21a7a
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/g++.target/i386/pr110792.C
|
||||
@@ -0,0 +1,16 @@
|
||||
+/* { dg-do compile { target ia32 } } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+template <int ROT, typename T>
|
||||
+inline T rotr(T input)
|
||||
+{
|
||||
+ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT)));
|
||||
+}
|
||||
+
|
||||
+unsigned long long WHIRL_S[256] = {0x18186018C07830D8};
|
||||
+unsigned long long whirl(unsigned char x0)
|
||||
+{
|
||||
+ const unsigned long long s4 = WHIRL_S[x0&0xFF];
|
||||
+ return rotr<32>(s4);
|
||||
+}
|
||||
+/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */
|
||||
diff --git a/gcc/testsuite/gcc.target/i386/pr110792.c b/gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
new file mode 100644
|
||||
index 0000000..b65125c
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
@@ -0,0 +1,18 @@
|
||||
+/* { dg-do compile { target int128 } } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+static inline unsigned __int128 rotr(unsigned __int128 input)
|
||||
+{
|
||||
+ return ((input >> 64) | (input << (64)));
|
||||
+}
|
||||
+
|
||||
+unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8};
|
||||
+unsigned __int128 whirl(unsigned char x0)
|
||||
+{
|
||||
+ register int t __asm("rdi") = x0&0xFF;
|
||||
+ const unsigned __int128 s4 = WHIRL_S[t];
|
||||
+ register unsigned __int128 tt __asm("rdi") = rotr(s4);
|
||||
+ asm("":::"memory");
|
||||
+ return tt;
|
||||
+}
|
||||
+/* { dg-final { scan-assembler-not "movq\tWHIRL_S\\+8\\(%rdi\\), %rdi" } } */
|
||||
--
|
||||
2.41.0
|
||||
|
||||
+38
-45
@@ -24,8 +24,8 @@ CBUILDROOT="/"
|
||||
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
|
||||
pkgname=gcc-aarch64
|
||||
pkgver=13.2.1_git20231014
|
||||
# i.e. 13.2.1, must match gcc/BASE-VER
|
||||
pkgver=13.1.1_git20230715
|
||||
# i.e. 13.1.1, must match gcc/BASE-VER
|
||||
_pkgbase="${pkgver%%_git*}"
|
||||
# date component from snapshots
|
||||
_pkgsnap="${pkgver##*_git}"
|
||||
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
|
||||
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
|
||||
|
||||
pkgname=gcc-aarch64
|
||||
pkgrel=0
|
||||
pkgrel=1
|
||||
pkgdesc="Stage2 cross-compiler for aarch64"
|
||||
url="https://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -268,13 +268,8 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${
|
||||
0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
0033-libphobos-do-not-use-LFS64-symbols.patch
|
||||
0034-libgo-fix-lfs64-use.patch
|
||||
0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
|
||||
"
|
||||
|
||||
# secfixes:
|
||||
# 13.2.1_git20231014-r0:
|
||||
# - CVE-2023-4039
|
||||
|
||||
# we build out-of-tree
|
||||
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
|
||||
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
@@ -432,7 +427,6 @@ package() {
|
||||
make -j1 DESTDIR="$pkgdir" install
|
||||
|
||||
ln -s gcc "$pkgdir"/usr/bin/cc
|
||||
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
|
||||
|
||||
if $LANG_JIT; then
|
||||
make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common
|
||||
@@ -787,40 +781,39 @@ gdb() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
406673a62deba759fc0532a801b3f57cabf894ea328587b23e62a707ba5767b0e3ae9b3f86bf3c6fcf13e8a3c30bc470e6598b625c8231efb629034211c162c2 gcc-13-20231014.tar.xz
|
||||
1ecffba1b07d60e1b4422302b032bbea918b674c8e12b30aa6965b544d700ce86b61e9f7b8d402c6caf59257f491a394dd0912f0948565d6eae9335ee54f3b35 0001-posix_memalign.patch
|
||||
163f282455b6a4df33f011bcd8b0440566ba0ffaeeab30d8ac52d39948980a56881ca0eff60687129d59556389a58b9d64e7768750bd70b1fe0fedbc9fc30dc2 0002-gcc-poison-system-directories.patch
|
||||
3f24bb6a50d3c45b71ea05590e32fe3e69b91377ab185352891d5035c76ed193117c6d0b314a4c364bcf136b9a9dd5c926d6c7c30ab436976c121ebfea8d3ddd 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
17a2993027d3ddf8595952ebcae425695ddc7b1cf73b384d2e55fddecb9cbf3f6482860a502ff69b14075e12badf27300fd3039f3a9005e851fd8d121d258c2b 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
|
||||
444550e55491ff89fe8cbbb4b73d017c9c147cdce1ad5c0561fe7d6ab3834515a814c7676c408cfeec18e1aaace27b3c26a2ffe4a75042285df5124976c38672 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
|
||||
5a5f57e4e45745bb4d9d63d7d410fe9dd56ce12dbd70c376dd45015909307faf02391e75368e4e7404591614a874cee41b20652cf27be234765d6db97ceb4e7e 0006-Enable-Wformat-and-Wformat-security-by-default.patch
|
||||
3a2b22388398a93dae7787e794cd580b9c577326f286241e086120c1fcfdd9228c2e00407088ebb163fb1acc21722c199071343551c989a958dc3c845b15132d 0007-Enable-Wtrampolines-by-default.patch
|
||||
7535de1c552544e3a51cbb00b5e08ac59edbf3bdcfce2a63b9f319fada3f3676f47e3a00c75d91bcefd14500555ea0844f18c130ff46b20f416ea76071e5af39 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
|
||||
93d03afd83dee5f7129c36a7b81fa8fd323476507e2f53a4fbe40a026037e7dfafa23591145d7af5848d9a322d212497947a0f58ef828734552e6a6dabd00cfa 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
da9eaf2f0ddbec5ee14dc26053936587e6c76fbf16846db804a18cf4d318579426ebcc566aed02daf8e34f60c08b61f5d3959305886dca9bbcdc84db057258d9 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
35b9aafe7eee8138cb7aad7164a8f77c15ccdce26843cee78b5871ef91d76cad22ed0871b20f51c4b89b71afd9cfe4ba4227086e158c466558513708fe7d2a1a 0011-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
9d43f844fad0ac6e1c35a2b6f461f9278ae09e468f2c9ae8adc43accbe6934994aa10d3a433644d1393a4a76e3caed69e3191db7f3c0c24b4e7a0a0a0cbac3f1 0012-libgcc_s.patch
|
||||
b2c4921c5eef33ee43a92ab5ec7f09d5d3adb49a2416595001e6376ffdf652ef9d0dc21778c3a86e45334290dbe467a4e891ed34a6522e0c72f746def22e8663 0013-nopie.patch
|
||||
0b50ad15115192699efa9fda3d4fb1c2fa95da06d7880ba34615b40c19a8256e1fe364da39f5c70dc22fbccf21db2de5900932afef68948722eeb25e435262f8 0014-ada-fix-shared-linking.patch
|
||||
00097c7106625ccf02149a757366f434c48f2abe824bb8b4bf067d29308889cb6039a5e5b2d3bd2683617693b47707d549252c56eea6bc3cdc2450a8d14f46a7 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
7f0bc42b93a389b614054e700b851abfbc53db391aa10cbdf6990d41396b293af78980bb39f1cf0967184d3fbf3d46ac7c7f096717b8f193ea34cbf7f37d7e91 0016-add-fortify-headers-paths.patch
|
||||
0841acbce81250f8cb140a75ff62958dfcab3bed792822baf1fe4193dd62633648343f4b66df886c12338eed88a98e591b968131416460f9f0274046019bb8ef 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
589d538bdf692559e475e53c79869734dede0eb15228cab9ca901c9db81b0e78a0e532b20dfb05ca584ea19ff4bedd83e139ddca912a26b446c5eb6905180536 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
2213e07bab6f5d8d3d39c732f5385f46cc8f0c84e35054139fdaf13051252d7bf11f647f54aa8456b532166b008fff0656d8f41278e34ba868dd6fe427427a3a 0019-aarch64-disable-multilib-support.patch
|
||||
a9567947471c3ba8a547a79c55e183974554bf823d9a97a165c966d7b3caad8789980e096e3b78452ece5de062bd9bb006af464bbf0c5a35b689eac3ee21e5c5 0020-s390x-disable-multilib-support.patch
|
||||
f382eb5f7c2c60c5a23fac587c9629a3059d7be0898e97a1feaf9b9cbe1ef4693cc1177eb29333e8b7944fa17487478e73958be45d5782ccb9ef501961fb9a96 0021-ppc64-le-disable-multilib-support.patch
|
||||
44ab86feb8e41e7c2b2e27accdf46194c9b80ee6a39543303dc04824f669d9fad182aabd40c9c7f6c265cf9bb71be830c257be115dc9d701d54eca3aa9ef174e 0022-x86_64-disable-multilib-support.patch
|
||||
e0763083c31485e8ac0b3724376a28af01bb6f50e1a054780b61886e4e3de2a35d127e6e353eb8d8729964ada9b5751bf05bdd51df539667008216db38f228a3 0023-riscv-disable-multilib-support.patch
|
||||
ab88a2f63e3545bbc36537aa9a86f2c6c35e41bbf702d6e13743a405cdac4f901eed5737189b780da96647fea9f5d863fdc76373f25a00064106dcb5514d6d87 0024-always-build-libgcc_eh.a.patch
|
||||
8fdbe0c8bf4ca60f458a33e59027de03d15ac91933fe46d8ca62119346d20b9bc2447c0bf22bceb63d0cf8613ab61512d9197f4e6c2224af473b63ef9f254295 0025-ada-libgnarl-compatibility-for-musl.patch
|
||||
30369bea84020c32d514196ba3adb3d09d2d0359af5550bd3f9719aa357e44b2f695623c1d2a99416e120dc86896c196c5dd4f638183dced4799604137385367 0026-ada-musl-support-fixes.patch
|
||||
3f9a406d7d2ce34951215ffbcadb49a45e55ad5c24ab9097c0e5e92383e43b876872ccd2a7e7def2833ab204975ee5733f8bcf90934db9fa9c4f6f56c62081f6 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
720a4001f9a1fa4122e456077ecff8d3eb8af7c83d0a81f9da6a6cca05b23664206a82a349e34482c48bfe40e99aa5f21567613d0913f6a24f282bc84a994496 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
2044c23b23726965c0a6fd39f616cc464badd650947cb40495eeabd906a3af629878c1d28b403b8eb46b30a1a0ba39083023290d62f0c99ccf070063226e3f8f 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
58e8415612e1042329ad114471852c19f6bf15bf3bfd7cd81ceeafa75778bcc28410a01071a7c8cbf12b8f549acd85723215772813deedb8f266e28b9e01a353 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
d47b559075f40d526235f47b91da1d0cf6bfe6c5b7311bbfe08af9dd6e8f27e6c7cd82e3b2d529aab0536246fc56e2d42c089b22cacb0e7f09ca4a9d07556994 0031-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
b325035cb7122d79c6b42ca6d3fc9e02319ed2f7cddb0639dff25d2798d2ce63812cd623462cdf95e21c9ffbf2412193f8b9fc89a4c36fa5a6a041661ac7399d 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
c474f34e6f9a4239d486a65141a133dbe8ce91427d502a57a9fd6eb403478a2b5715ba74f24c1cc0761e16eec77ba2c1ca921fb7d7bc1e040fc3703fc9559e75 0033-libphobos-do-not-use-LFS64-symbols.patch
|
||||
c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1e0636e8890849a5719647bfbdf84f951d638f8f488cb718c 0034-libgo-fix-lfs64-use.patch
|
||||
cc1e10ac6e72db816f09325e301103109cc212a6f3de3ce0b9b038d149233c467319d203941695dbf3d7b9e2dcbbcd17609cdb056e831fcc323cd592423882d8 0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
|
||||
942d706e7f8ae8dbc85808e388b9c98de6bd922d49adeca63691218363a4f0b46829509ba1f1ed358ef436e1adf77ad7a820aaeb4bb03a4fc52cfdec118394f3 gcc-13-20230715.tar.xz
|
||||
438eda29a1851c72e65422bb4cd129ecc016f06f9bd038288e39762c01b932f786ed4aad587c7b16baf948c342c10dc9beff125166b97e0b8e0d05789aec95ce 0001-posix_memalign.patch
|
||||
4a7cd030e107b6e35fb883c80f21a547da14f540f989555ac2c9ba08958ace5b44dca194a96b460415c71f663e885954d73b04ade55f2f9d3cb116f50df8d8ca 0002-gcc-poison-system-directories.patch
|
||||
99b194f53677c3a75c3c376160673703f2d759d795ebd9f6e66d5ee095a648eba35d8aef1990a6a1e805c1cc1720636d7c23ef6102b674d92996b1e5646a0b2c 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
39013ad0b255e9cfd168010eefc32ec4d015fce2c2b4e864341a6aa8bdb74e52a08f0ae83f29e27e9524d4da27f28369a6aa4d76f6aed6490dc2961b18f90e94 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
|
||||
0ef08231bef5c77a38e8deaae4e00675de4312071425cf1db46ee54c3e00d2a5d1658a68302dd495c796d397e61e79efcf4e91fbd8fb2cd2e2fa539c2e884492 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
|
||||
8202e22832141fb12601546cec42472fdb194892f839e9fed86b4ab597204b6e6575c0585c283301eeb598ac1f06d16ce500d9c0ea333444bd50ae2a210d2d76 0006-Enable-Wformat-and-Wformat-security-by-default.patch
|
||||
1b239b94b570a0eff2249a9ec7ad150270c3210128f8f8a67e1554a044a039b2acc69768ebc57a15cec661f039c41fb7b620e7ec65320efbce40ceec1c9c6b90 0007-Enable-Wtrampolines-by-default.patch
|
||||
eb3ce4df99bf4f22ca4bac2d4e24be4c235098fb67ae118cb8efe360f0441a39a9931076fa615fbc3b7d2b2a541d4ffb2cfc56097224fbd8b5f09bc01a1d7878 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
|
||||
58a5ea76b4f7d662d3165dfeaad258087b0ec58b7ff87a62971c60817388ec6191d6dc841d63696d00fb68fe16b690790f3c0639e0edbd204033b4f8bbb4dafe 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
85d60bc6ef5f41854a5bc36847917dcee24bf6663fcd70b78a164a07fc08551f74fe37329b57cf187b95e23a6d04bce2ba620f21ac80c8df7d9cfcc8052089df 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
8ef0f45bc0639464537f39319f4954d9a9ab182e14a10c6e39455bebddd24dcdbe6ec3fc0316324a4f9d7dc1f95ec8babd7112c2ff05af54534e0fbe74ff6ebf 0011-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
d8467365c19339e52bcf27476b338fb412b6a7dd6eefd4fd92822e67c756a1f04a106f4e0c1c1909b4bee8f5f3b506a98614c1bf3478d7714415cca9eb7257e1 0012-libgcc_s.patch
|
||||
cab0cb6c462f2f4abefde020e17199366c6c24ad2582fe7d793c552aa2bcbe3148c5f6cd6245bc9ff86017d949ef4e6f063c8a01ce7d247abfe685077c57e71c 0013-nopie.patch
|
||||
b1277a4edc91208fecf5ad7015e8cf237d567b310063f26d14ff39c4aade683e6d1d54d817b7f4fef79db7dc456be9f09a5a8c0ceeff784f839521d0cf243807 0014-ada-fix-shared-linking.patch
|
||||
9fa42ba8374b8e47cb3d96315d783c990cf35075354869f5657383908c4d5f143ee94d1f7f86f52140a974f5fc872b22bcaec1f732ebc249357a86ad9e781d4e 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
05e1e06a6e33958ec5c22b26919fe142153c9605173ad90c770a32d7d48dfb5df421553f3030b6d979f34acbd3614d0e32c86c3cb0b819f3fbaa054f2962ff20 0016-add-fortify-headers-paths.patch
|
||||
784d488cf55fafa259d3aa874f4230453b4d3aeb94158d0c96caf26524b8b7f8cea12367a72fa4616389dfcb877c4a1c4fe9d1cb57a67c0329bbad61e91ee423 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
18c1092273005f4fcaec36830a2cbfbf5e2a2e4e82cf5f7f4f7f3141dbbe2731db2f47a9869f271b4ee337835962c7dfbf009165f2988a14ff40d6c6935986ce 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
4bbce70032f125002aa857b0561c80e15588847282c2ab2851c3c507a48d22613ef3affb288c33da461688890c7ce265c6175fb1580194669621653788172d1b 0019-aarch64-disable-multilib-support.patch
|
||||
d4bf0a7add6d531871324c36004f7d92eea9ad7042d567e43377e5bdde7dce8d87c649c3c4bdf0144b82d2607b46fab4eb821cf9a82ee4eddb003601b331e395 0020-s390x-disable-multilib-support.patch
|
||||
e0002f9aea22c923530591f97cfb29953cd924a78b3c7ae5d15ccaae46491c1f40b03a5dc5fc17a286299b82ef48248a9ecbf6eea9bbd2058189a697e9e2ffe8 0021-ppc64-le-disable-multilib-support.patch
|
||||
28b6e2f1574611964f8e2effa57dcb6efff5d562ec5f923abfa9ddeaf4a09b0c6941d1406b02d113f950113b7239dcc8dd6b14d06ade3b2f4dbdb7f6d5560bed 0022-x86_64-disable-multilib-support.patch
|
||||
6955ea39199f258340b69c8aa7021c65fc15179323f50be08952a302b77cec1a720b99ada60bf2a07594ba536a50b682d06290497fc9d4553c8e11e2f536a606 0023-riscv-disable-multilib-support.patch
|
||||
46bfcfc122a29060d6ff1fb52b509251ba44357df67f81be1c274fdfe9b80099b1a5ad64f7d40d8412bb437e6147cb404448b8e067989018bdaf2df5cdfabaef 0024-always-build-libgcc_eh.a.patch
|
||||
07b4028c8d8c7b8bc71c0fb4e31669fb2066aefdded556d0a65773fa93db097a55e9bfa9ac9ee10fbc82e4ba21aa84738e91c331b768cf7d067407934fc30064 0025-ada-libgnarl-compatibility-for-musl.patch
|
||||
7201a76ac033bd4f7532600d7a975f2aa9f93692cec42e28323e6e8e27f7357e0cb1497c12503829a41ed025e9c7953bf4738ad0d980687a774088fabaf08cdf 0026-ada-musl-support-fixes.patch
|
||||
f3974d1a693c0e382fa78ae94ebf768c6a1ca0ee631b478cf52a366537edae373cd0ab31369ef1ae0627d2834bcacfb94c9a4d01505c91eaac9d228a5933d0ae 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
8f77c3a908ec92966fb1697fd40cc936d4dca2624f6f14b199ba154f8c46be773548a571b41a1cf537134b011e3426deb443e4a13e49fb763c91c821ca1bae63 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
8cd10e3d10e3da0505cb4c09c4448335e5bbd18fe6e2c47cfa1257df3d83234983d71b1fdb0b4bfc76b24d477fd6e2d771b8eefacbb61e0ca1df105b980dbd4a 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
e026f1e20b78328b55b92a5fdf8f9d1d761176d2eea90556d7be8e2bae72d0dc52fd482d1eac8ab623e98653ca56d39b18fd2139ff99d420994b10c36f266ca6 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
80b41cf68a7e56bef50c05073cc79b9eafbd37535f6360deac16dfe5498ac041aaf91c3cc1bc6e323d574cd1da65aab22df32a03e39f606bff41a103063aafef 0031-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
b4917017c45d170c6878c7744c1ecababef4346903ee1f684d5a59d65255a5576d16d40137f7dbfe46144907c6389035966813e9024c9a4f499e963ed533947a 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
1cc7a5ef067bf543f6c1fa14dedc6378750a43be1649b18605699dffdc1ebce8b88405d3f12dd57e3d821c7d457d861ee0a54138c037917d6365b0bf69526e85 0033-libphobos-do-not-use-LFS64-symbols.patch
|
||||
77a1426e316b96b51edef9a35a64565d5f84b94d46a2fd7293ea406ede473b449613969f9e29cae44f8fbfbc767a27cef01b36392cf8ffb3f618c0df4e217c71 0034-libgo-fix-lfs64-use.patch
|
||||
"
|
||||
@@ -1,7 +1,7 @@
|
||||
From 47b4bd4deb2c356bb07d2a96f22127aefafec3a4 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Fri, 26 Jan 2018 20:32:50 +0000
|
||||
Subject: [PATCH 01/35] posix_memalign
|
||||
Subject: [PATCH 01/34] posix_memalign
|
||||
|
||||
---
|
||||
gcc/config/i386/pmm_malloc.h | 9 +++++----
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 29 Mar 2013 08:59:00 +0400
|
||||
Subject: [PATCH 02/35] gcc: poison-system-directories
|
||||
Subject: [PATCH 02/34] gcc: poison-system-directories
|
||||
|
||||
Add /sw/include and /opt/include based on the original
|
||||
zecke-no-host-includes.patch patch. The original patch checked for
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ff4dd4ce33133e675b7bedc86b73357c04631cb9 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:45:49 +0000
|
||||
Subject: [PATCH 03/35] specs: turn on -Wl,-z,now by default
|
||||
Subject: [PATCH 03/34] specs: turn on -Wl,-z,now by default
|
||||
|
||||
Previously, we also used to turn on -z relro here, but we now build
|
||||
binutils with --enable-relro, which is functionally equivalent.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1b315235433701e4a974da259b8d651169ddc7ac Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:46:22 +0000
|
||||
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
Subject: [PATCH 04/34] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
ObjC, ObjC++, if the optimization level is > 0
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 67c0f5789630b27149f60ff831999ef7c1dba5d5 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:46:56 +0000
|
||||
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
|
||||
Subject: [PATCH 05/34] On linux targets pass --as-needed by default to the
|
||||
linker, but always link the sanitizer libraries with --no-as-needed.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From bb25e8489384504cd59e4a2538720863da1fb29c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:47:43 +0000
|
||||
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
|
||||
Subject: [PATCH 06/34] Enable -Wformat and -Wformat-security by default.
|
||||
|
||||
---
|
||||
gcc/c-family/c.opt | 4 ++--
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4a728ad48a7b437cc6f2697e26603bf648149f86 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:48:24 +0000
|
||||
Subject: [PATCH 07/35] Enable -Wtrampolines by default.
|
||||
Subject: [PATCH 07/34] Enable -Wtrampolines by default.
|
||||
|
||||
---
|
||||
gcc/common.opt | 2 +-
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 32f24560d0602f7735d5e9efd92fe3151bd72cea Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:49:40 +0000
|
||||
Subject: [PATCH 08/35] Disable ssp on -nostdlib, -nodefaultlibs and
|
||||
Subject: [PATCH 08/34] Disable ssp on -nostdlib, -nodefaultlibs and
|
||||
-ffreestanding Change the buffer size.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From c7ec8da7280d7f97f5543eb9ddeca7600aafc43c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:50:33 +0000
|
||||
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
|
||||
Subject: [PATCH 09/34] Ensure that msgfmt doesn't encounter problems during
|
||||
gcc bootstrapping.
|
||||
|
||||
Solves error messages like the following:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From aaa029bcee68298695b7c4278c90b6bc320d098c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:52:07 +0000
|
||||
Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
|
||||
Subject: [PATCH 10/34] Don't declare asprintf if defined as a macro.
|
||||
|
||||
---
|
||||
include/libiberty.h | 3 +++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 65e01e749205c9af218b01233cebd0077538d0ee Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:53:00 +0000
|
||||
Subject: [PATCH 11/35] libiberty: copy PIC objects during build process
|
||||
Subject: [PATCH 11/34] libiberty: copy PIC objects during build process
|
||||
|
||||
---
|
||||
libiberty/Makefile.in | 1 +
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 453a815bf2844971a91eaef800af188d9e86b784 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Sat, 24 Oct 2015 20:09:53 +0000
|
||||
Subject: [PATCH 12/35] libgcc_s
|
||||
Subject: [PATCH 12/34] libgcc_s
|
||||
|
||||
---
|
||||
gcc/config/i386/i386-expand.cc | 4 ++--
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7d7d12137c666761a8dd61179c9651b85dae9b41 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Sat, 7 Nov 2015 02:08:05 +0000
|
||||
Subject: [PATCH 13/35] nopie
|
||||
Subject: [PATCH 13/34] nopie
|
||||
|
||||
---
|
||||
gcc/configure | 27 +++++++++++++++++++++++++++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From dd5bb97c31a9f57034c70a7a18ba6e2e133084c7 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:59:16 +0000
|
||||
Subject: [PATCH 14/35] ada: fix shared linking
|
||||
Subject: [PATCH 14/34] ada: fix shared linking
|
||||
|
||||
---
|
||||
gcc/ada/link.c | 12 ++++++------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 6bb5b7d9161d05f31b001d8211a9c63caf63fd2f Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:59:43 +0000
|
||||
Subject: [PATCH 15/35] build: fix CXXFLAGS_FOR_BUILD passing
|
||||
Subject: [PATCH 15/34] build: fix CXXFLAGS_FOR_BUILD passing
|
||||
|
||||
---
|
||||
Makefile.in | 1 +
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From f0d9e00cac06689f64b214de7aee80d7116ef084 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:01:06 +0000
|
||||
Subject: [PATCH 16/35] add fortify-headers paths
|
||||
Subject: [PATCH 16/34] add fortify-headers paths
|
||||
|
||||
---
|
||||
gcc/config/linux.h | 2 ++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 857db04f4f1a06e866551b4172fe8f27363f4a92 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
||||
Date: Fri, 21 Aug 2020 07:03:00 +0000
|
||||
Subject: [PATCH 17/35] Alpine musl package provides libssp_nonshared.a. We
|
||||
Subject: [PATCH 17/34] Alpine musl package provides libssp_nonshared.a. We
|
||||
link to it unconditionally, as otherwise we get link failures if some objects
|
||||
are -fstack-protector built and final link happens with -fno-stack-protector.
|
||||
This seems to be the common case when bootstrapping gcc, the piepatches do
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 5a8347e23ab13912b6edec2c6c6e3a101b017c79 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:03:42 +0000
|
||||
Subject: [PATCH 18/35] DP: Use --push-state/--pop-state for gold as well when
|
||||
Subject: [PATCH 18/34] DP: Use --push-state/--pop-state for gold as well when
|
||||
linking libtsan.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 41d00a2eb0754acf71958808bd17dbebeb517b84 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:12:55 +0000
|
||||
Subject: [PATCH 19/35] aarch64: disable multilib support
|
||||
Subject: [PATCH 19/34] aarch64: disable multilib support
|
||||
|
||||
multilib is unsupported on Alpine GCC
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 85b42bfbba71616831d14360b16998acb28790fd Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:13:59 +0000
|
||||
Subject: [PATCH 20/35] s390x: disable multilib support
|
||||
Subject: [PATCH 20/34] s390x: disable multilib support
|
||||
|
||||
multilib is not supported on Alpine GCC at present
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7b53df284242638e940c0155b6c21e88cea1f55b Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:14:33 +0000
|
||||
Subject: [PATCH 21/35] ppc64[le]: disable multilib support
|
||||
Subject: [PATCH 21/34] ppc64[le]: disable multilib support
|
||||
|
||||
multilib is not presently supported on Alpine GCC
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 96e7e1e9a899d9bb5fcbdf788bd529d0390c626f Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 6 Jan 2022 03:14:54 +0000
|
||||
Subject: [PATCH 22/35] x86_64: disable multilib support
|
||||
Subject: [PATCH 22/34] x86_64: disable multilib support
|
||||
|
||||
multilib is not presently supported on Alpine GCC
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b26224acf342eacb33491f6ea0da1faf73d35715 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Mon, 3 Jan 2022 07:14:48 +0100
|
||||
Subject: [PATCH 23/35] riscv: disable multilib support
|
||||
Subject: [PATCH 23/34] riscv: disable multilib support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From a72e0613f79f6b6867819317accb7a714031a08c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:05:41 +0000
|
||||
Subject: [PATCH 24/35] always build libgcc_eh.a
|
||||
Subject: [PATCH 24/34] always build libgcc_eh.a
|
||||
|
||||
highly inspired by:
|
||||
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 3ee8cbc1cad261b30d4a7a66d31496d5f243ce2f Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:06:30 +0000
|
||||
Subject: [PATCH 25/35] ada: libgnarl compatibility for musl
|
||||
Subject: [PATCH 25/34] ada: libgnarl compatibility for musl
|
||||
|
||||
---
|
||||
gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 3df4788c79c7429b196c7b284af2b4cf9a4b4f8d Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 07:07:48 +0000
|
||||
Subject: [PATCH 26/35] ada: musl support fixes
|
||||
Subject: [PATCH 26/34] ada: musl support fixes
|
||||
|
||||
---
|
||||
gcc/ada/Makefile.rtl | 10 +++++-----
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 7b50823d8a4131e5a55d2499a0f5a52b3d91eed2 Mon Sep 17 00:00:00 2001
|
||||
From: Drew DeVault <sir@cmpwn.com>
|
||||
Date: Wed, 9 Dec 2020 07:42:06 +0000
|
||||
Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in
|
||||
Subject: [PATCH 27/34] configure: Add --enable-autolink-libatomic, use in
|
||||
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
|
||||
|
||||
This fixes issues with RISC-V.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 5bbbd320e54ab5341cfba83e8af98685131caba1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 29 Aug 2021 12:23:34 +0200
|
||||
Subject: [PATCH 28/35] configure: fix detection of atomic builtins in
|
||||
Subject: [PATCH 28/34] configure: fix detection of atomic builtins in
|
||||
libatomic configure script
|
||||
|
||||
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 430c701a3cefbe09a9c7c8a2f5bbe957f9b2ecb2 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
Date: Thu, 30 Jun 2022 16:44:51 +0000
|
||||
Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
|
||||
Subject: [PATCH 29/34] libstdc++: do not throw exceptions for non-C locales on
|
||||
musl targets
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 05f0043755f341a2ff4f845379327076b3e0203d Mon Sep 17 00:00:00 2001
|
||||
From: Mathias LANG <pro.mathias.lang@gmail.com>
|
||||
Date: Mon, 17 Jan 2022 03:49:21 +0000
|
||||
Subject: [PATCH 30/35] gdc: unconditionally link libgphobos against
|
||||
Subject: [PATCH 30/34] gdc: unconditionally link libgphobos against
|
||||
libucontext
|
||||
|
||||
ref: alpine/aports#13422
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0b89a74fbf77ae6917f043c79cd03db0d6ef0212 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sat, 16 Jul 2022 09:21:11 +0200
|
||||
Subject: [PATCH 31/35] druntime: link against libucontext on all platforms
|
||||
Subject: [PATCH 31/34] druntime: link against libucontext on all platforms
|
||||
|
||||
On musl-based Linux distributions, swapcontext etc. are not provided by
|
||||
musl but instead by libucontext. Hence, we _always_ need to link against
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From eeec799f43fbd0bfffc13594585b39d708972511 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Tue, 19 Jul 2022 14:54:07 +0200
|
||||
Subject: [PATCH 32/35] libgnat: time_t is always 64-bit on musl libc
|
||||
Subject: [PATCH 32/34] libgnat: time_t is always 64-bit on musl libc
|
||||
|
||||
---
|
||||
gcc/ada/libgnat/s-parame.ads | 2 +-
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b71d21b87e6946c763edad5e420bf22d8a453077 Mon Sep 17 00:00:00 2001
|
||||
From: psykose <alice@ayaya.dev>
|
||||
Date: Mon, 29 May 2023 15:33:11 +0000
|
||||
Subject: [PATCH 33/35] libphobos: do not use LFS64 symbols
|
||||
Subject: [PATCH 33/34] libphobos: do not use LFS64 symbols
|
||||
|
||||
musl does not have these since 1.2.4, we can't use the compat interfaces.
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4bfcb35bc43d3e3b7510620362d7c28d9e4c17ca Mon Sep 17 00:00:00 2001
|
||||
From: psykose <alice@ayaya.dev>
|
||||
Date: Mon, 10 Jul 2023 23:23:29 +0000
|
||||
Subject: [PATCH 34/35] libgo: fix lfs64 use
|
||||
Subject: [PATCH 34/34] libgo: fix lfs64 use
|
||||
|
||||
---
|
||||
.../go/internal/syscall/unix/at_largefile.go | 2 +-
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
https://gcc.gnu.org/PR110792
|
||||
https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=790c1f60a5662b16eb19eb4b81922995863c7571
|
||||
https://github.com/randombit/botan/issues/3637
|
||||
|
||||
From 85628c5653ff40963158a24c60eeec6a3b5a8e56 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Sayle <roger@nextmovesoftware.com>
|
||||
Date: Thu, 3 Aug 2023 07:12:04 +0100
|
||||
Subject: [PATCH] PR target/110792: Early clobber issues with
|
||||
rot32di2_doubleword on i386.
|
||||
|
||||
This patch is a conservative fix for PR target/110792, a wrong-code
|
||||
regression affecting doubleword rotations by BITS_PER_WORD, which
|
||||
effectively swaps the highpart and lowpart words, when the source to be
|
||||
rotated resides in memory. The issue is that if the register used to
|
||||
hold the lowpart of the destination is mentioned in the address of
|
||||
the memory operand, the current define_insn_and_split unintentionally
|
||||
clobbers it before reading the highpart.
|
||||
|
||||
Hence, for the testcase, the incorrectly generated code looks like:
|
||||
|
||||
salq $4, %rdi // calculate address
|
||||
movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr
|
||||
movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart
|
||||
|
||||
Traditionally, the textbook way to fix this would be to add an
|
||||
explicit early clobber to the instruction's constraints.
|
||||
|
||||
(define_insn_and_split "<insn>32di2_doubleword"
|
||||
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
|
||||
+ [(set (match_operand:DI 0 "register_operand" "=r,r,&r")
|
||||
(any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
|
||||
(const_int 32)))]
|
||||
|
||||
but unfortunately this currently generates significantly worse code,
|
||||
due to a strange choice of reloads (effectively memcpy), which ends up
|
||||
looking like:
|
||||
|
||||
salq $4, %rdi // calculate address
|
||||
movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg.
|
||||
movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack
|
||||
movq -8(%rsp), %rdi // load highpart
|
||||
movq -16(%rsp), %rbp // load lowpart
|
||||
|
||||
Note that reload's "&" doesn't distinguish between the memory being
|
||||
early clobbered, vs the registers used in an addressing mode being
|
||||
early clobbered.
|
||||
|
||||
The fix proposed in this patch is to remove the third alternative, that
|
||||
allowed offsetable memory as an operand, forcing reload to place the
|
||||
operand into a register before the rotation. This results in:
|
||||
|
||||
salq $4, %rdi
|
||||
movq WHIRL_S(%rdi), %rax
|
||||
movq WHIRL_S+8(%rdi), %rdi
|
||||
movq %rax, %rbp
|
||||
|
||||
I believe there's a more advanced solution, by swapping the order of
|
||||
the loads (if first destination register is mentioned in the address),
|
||||
or inserting a lea insn (if both destination registers are mentioned
|
||||
in the address), but this fix is a minimal "safe" solution, that
|
||||
should hopefully be suitable for backporting.
|
||||
|
||||
2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
|
||||
|
||||
gcc/ChangeLog
|
||||
PR target/110792
|
||||
* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
|
||||
place operand in a register before gen_<insn>64ti2_doubleword.
|
||||
(<any_rotate>di3): Likewise, for rotations by 32 bits, place
|
||||
operand in a register before gen_<insn>32di2_doubleword.
|
||||
(<any_rotate>32di2_doubleword): Constrain operand to be in register.
|
||||
(<any_rotate>64ti2_doubleword): Likewise.
|
||||
|
||||
gcc/testsuite/ChangeLog
|
||||
PR target/110792
|
||||
* g++.target/i386/pr110792.C: New 32-bit C++ test case.
|
||||
* gcc.target/i386/pr110792.c: New 64-bit C test case.
|
||||
|
||||
(cherry picked from commit 790c1f60a5662b16eb19eb4b81922995863c7571)
|
||||
---
|
||||
gcc/config/i386/i386.md | 18 ++++++++++++------
|
||||
gcc/testsuite/g++.target/i386/pr110792.C | 16 ++++++++++++++++
|
||||
gcc/testsuite/gcc.target/i386/pr110792.c | 18 ++++++++++++++++++
|
||||
3 files changed, 46 insertions(+), 6 deletions(-)
|
||||
create mode 100644 gcc/testsuite/g++.target/i386/pr110792.C
|
||||
create mode 100644 gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
|
||||
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
|
||||
index f3a3305..a71e837 100644
|
||||
--- a/gcc/config/i386/i386.md
|
||||
+++ b/gcc/config/i386/i386.md
|
||||
@@ -14359,7 +14359,10 @@
|
||||
emit_insn (gen_ix86_<insn>ti3_doubleword
|
||||
(operands[0], operands[1], operands[2]));
|
||||
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64)
|
||||
- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
|
||||
+ {
|
||||
+ operands[1] = force_reg (TImode, operands[1]);
|
||||
+ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
|
||||
+ }
|
||||
else
|
||||
{
|
||||
rtx amount = force_reg (QImode, operands[2]);
|
||||
@@ -14394,7 +14397,10 @@
|
||||
emit_insn (gen_ix86_<insn>di3_doubleword
|
||||
(operands[0], operands[1], operands[2]));
|
||||
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32)
|
||||
- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
|
||||
+ {
|
||||
+ operands[1] = force_reg (DImode, operands[1]);
|
||||
+ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
|
||||
+ }
|
||||
else
|
||||
FAIL;
|
||||
|
||||
@@ -14562,8 +14568,8 @@
|
||||
})
|
||||
|
||||
(define_insn_and_split "<insn>32di2_doubleword"
|
||||
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
|
||||
- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
|
||||
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
|
||||
+ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r")
|
||||
(const_int 32)))]
|
||||
"!TARGET_64BIT"
|
||||
"#"
|
||||
@@ -14580,8 +14586,8 @@
|
||||
})
|
||||
|
||||
(define_insn_and_split "<insn>64ti2_doubleword"
|
||||
- [(set (match_operand:TI 0 "register_operand" "=r,r,r")
|
||||
- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o")
|
||||
+ [(set (match_operand:TI 0 "register_operand" "=r,r")
|
||||
+ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r")
|
||||
(const_int 64)))]
|
||||
"TARGET_64BIT"
|
||||
"#"
|
||||
diff --git a/gcc/testsuite/g++.target/i386/pr110792.C b/gcc/testsuite/g++.target/i386/pr110792.C
|
||||
new file mode 100644
|
||||
index 0000000..ce21a7a
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/g++.target/i386/pr110792.C
|
||||
@@ -0,0 +1,16 @@
|
||||
+/* { dg-do compile { target ia32 } } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+template <int ROT, typename T>
|
||||
+inline T rotr(T input)
|
||||
+{
|
||||
+ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT)));
|
||||
+}
|
||||
+
|
||||
+unsigned long long WHIRL_S[256] = {0x18186018C07830D8};
|
||||
+unsigned long long whirl(unsigned char x0)
|
||||
+{
|
||||
+ const unsigned long long s4 = WHIRL_S[x0&0xFF];
|
||||
+ return rotr<32>(s4);
|
||||
+}
|
||||
+/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */
|
||||
diff --git a/gcc/testsuite/gcc.target/i386/pr110792.c b/gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
new file mode 100644
|
||||
index 0000000..b65125c
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
@@ -0,0 +1,18 @@
|
||||
+/* { dg-do compile { target int128 } } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+static inline unsigned __int128 rotr(unsigned __int128 input)
|
||||
+{
|
||||
+ return ((input >> 64) | (input << (64)));
|
||||
+}
|
||||
+
|
||||
+unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8};
|
||||
+unsigned __int128 whirl(unsigned char x0)
|
||||
+{
|
||||
+ register int t __asm("rdi") = x0&0xFF;
|
||||
+ const unsigned __int128 s4 = WHIRL_S[t];
|
||||
+ register unsigned __int128 tt __asm("rdi") = rotr(s4);
|
||||
+ asm("":::"memory");
|
||||
+ return tt;
|
||||
+}
|
||||
+/* { dg-final { scan-assembler-not "movq\tWHIRL_S\\+8\\(%rdi\\), %rdi" } } */
|
||||
--
|
||||
2.41.0
|
||||
|
||||
+38
-45
@@ -24,8 +24,8 @@ CBUILDROOT="/"
|
||||
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
|
||||
pkgname=gcc-armhf
|
||||
pkgver=13.2.1_git20231014
|
||||
# i.e. 13.2.1, must match gcc/BASE-VER
|
||||
pkgver=13.1.1_git20230715
|
||||
# i.e. 13.1.1, must match gcc/BASE-VER
|
||||
_pkgbase="${pkgver%%_git*}"
|
||||
# date component from snapshots
|
||||
_pkgsnap="${pkgver##*_git}"
|
||||
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
|
||||
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
|
||||
|
||||
pkgname=gcc-armhf
|
||||
pkgrel=0
|
||||
pkgrel=1
|
||||
pkgdesc="Stage2 cross-compiler for armhf"
|
||||
url="https://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -268,13 +268,8 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${
|
||||
0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
0033-libphobos-do-not-use-LFS64-symbols.patch
|
||||
0034-libgo-fix-lfs64-use.patch
|
||||
0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
|
||||
"
|
||||
|
||||
# secfixes:
|
||||
# 13.2.1_git20231014-r0:
|
||||
# - CVE-2023-4039
|
||||
|
||||
# we build out-of-tree
|
||||
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
|
||||
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
@@ -432,7 +427,6 @@ package() {
|
||||
make -j1 DESTDIR="$pkgdir" install
|
||||
|
||||
ln -s gcc "$pkgdir"/usr/bin/cc
|
||||
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
|
||||
|
||||
if $LANG_JIT; then
|
||||
make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common
|
||||
@@ -787,40 +781,39 @@ gdb() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
406673a62deba759fc0532a801b3f57cabf894ea328587b23e62a707ba5767b0e3ae9b3f86bf3c6fcf13e8a3c30bc470e6598b625c8231efb629034211c162c2 gcc-13-20231014.tar.xz
|
||||
1ecffba1b07d60e1b4422302b032bbea918b674c8e12b30aa6965b544d700ce86b61e9f7b8d402c6caf59257f491a394dd0912f0948565d6eae9335ee54f3b35 0001-posix_memalign.patch
|
||||
163f282455b6a4df33f011bcd8b0440566ba0ffaeeab30d8ac52d39948980a56881ca0eff60687129d59556389a58b9d64e7768750bd70b1fe0fedbc9fc30dc2 0002-gcc-poison-system-directories.patch
|
||||
3f24bb6a50d3c45b71ea05590e32fe3e69b91377ab185352891d5035c76ed193117c6d0b314a4c364bcf136b9a9dd5c926d6c7c30ab436976c121ebfea8d3ddd 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
17a2993027d3ddf8595952ebcae425695ddc7b1cf73b384d2e55fddecb9cbf3f6482860a502ff69b14075e12badf27300fd3039f3a9005e851fd8d121d258c2b 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
|
||||
444550e55491ff89fe8cbbb4b73d017c9c147cdce1ad5c0561fe7d6ab3834515a814c7676c408cfeec18e1aaace27b3c26a2ffe4a75042285df5124976c38672 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
|
||||
5a5f57e4e45745bb4d9d63d7d410fe9dd56ce12dbd70c376dd45015909307faf02391e75368e4e7404591614a874cee41b20652cf27be234765d6db97ceb4e7e 0006-Enable-Wformat-and-Wformat-security-by-default.patch
|
||||
3a2b22388398a93dae7787e794cd580b9c577326f286241e086120c1fcfdd9228c2e00407088ebb163fb1acc21722c199071343551c989a958dc3c845b15132d 0007-Enable-Wtrampolines-by-default.patch
|
||||
7535de1c552544e3a51cbb00b5e08ac59edbf3bdcfce2a63b9f319fada3f3676f47e3a00c75d91bcefd14500555ea0844f18c130ff46b20f416ea76071e5af39 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
|
||||
93d03afd83dee5f7129c36a7b81fa8fd323476507e2f53a4fbe40a026037e7dfafa23591145d7af5848d9a322d212497947a0f58ef828734552e6a6dabd00cfa 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
da9eaf2f0ddbec5ee14dc26053936587e6c76fbf16846db804a18cf4d318579426ebcc566aed02daf8e34f60c08b61f5d3959305886dca9bbcdc84db057258d9 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
35b9aafe7eee8138cb7aad7164a8f77c15ccdce26843cee78b5871ef91d76cad22ed0871b20f51c4b89b71afd9cfe4ba4227086e158c466558513708fe7d2a1a 0011-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
9d43f844fad0ac6e1c35a2b6f461f9278ae09e468f2c9ae8adc43accbe6934994aa10d3a433644d1393a4a76e3caed69e3191db7f3c0c24b4e7a0a0a0cbac3f1 0012-libgcc_s.patch
|
||||
b2c4921c5eef33ee43a92ab5ec7f09d5d3adb49a2416595001e6376ffdf652ef9d0dc21778c3a86e45334290dbe467a4e891ed34a6522e0c72f746def22e8663 0013-nopie.patch
|
||||
0b50ad15115192699efa9fda3d4fb1c2fa95da06d7880ba34615b40c19a8256e1fe364da39f5c70dc22fbccf21db2de5900932afef68948722eeb25e435262f8 0014-ada-fix-shared-linking.patch
|
||||
00097c7106625ccf02149a757366f434c48f2abe824bb8b4bf067d29308889cb6039a5e5b2d3bd2683617693b47707d549252c56eea6bc3cdc2450a8d14f46a7 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
7f0bc42b93a389b614054e700b851abfbc53db391aa10cbdf6990d41396b293af78980bb39f1cf0967184d3fbf3d46ac7c7f096717b8f193ea34cbf7f37d7e91 0016-add-fortify-headers-paths.patch
|
||||
0841acbce81250f8cb140a75ff62958dfcab3bed792822baf1fe4193dd62633648343f4b66df886c12338eed88a98e591b968131416460f9f0274046019bb8ef 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
589d538bdf692559e475e53c79869734dede0eb15228cab9ca901c9db81b0e78a0e532b20dfb05ca584ea19ff4bedd83e139ddca912a26b446c5eb6905180536 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
2213e07bab6f5d8d3d39c732f5385f46cc8f0c84e35054139fdaf13051252d7bf11f647f54aa8456b532166b008fff0656d8f41278e34ba868dd6fe427427a3a 0019-aarch64-disable-multilib-support.patch
|
||||
a9567947471c3ba8a547a79c55e183974554bf823d9a97a165c966d7b3caad8789980e096e3b78452ece5de062bd9bb006af464bbf0c5a35b689eac3ee21e5c5 0020-s390x-disable-multilib-support.patch
|
||||
f382eb5f7c2c60c5a23fac587c9629a3059d7be0898e97a1feaf9b9cbe1ef4693cc1177eb29333e8b7944fa17487478e73958be45d5782ccb9ef501961fb9a96 0021-ppc64-le-disable-multilib-support.patch
|
||||
44ab86feb8e41e7c2b2e27accdf46194c9b80ee6a39543303dc04824f669d9fad182aabd40c9c7f6c265cf9bb71be830c257be115dc9d701d54eca3aa9ef174e 0022-x86_64-disable-multilib-support.patch
|
||||
e0763083c31485e8ac0b3724376a28af01bb6f50e1a054780b61886e4e3de2a35d127e6e353eb8d8729964ada9b5751bf05bdd51df539667008216db38f228a3 0023-riscv-disable-multilib-support.patch
|
||||
ab88a2f63e3545bbc36537aa9a86f2c6c35e41bbf702d6e13743a405cdac4f901eed5737189b780da96647fea9f5d863fdc76373f25a00064106dcb5514d6d87 0024-always-build-libgcc_eh.a.patch
|
||||
8fdbe0c8bf4ca60f458a33e59027de03d15ac91933fe46d8ca62119346d20b9bc2447c0bf22bceb63d0cf8613ab61512d9197f4e6c2224af473b63ef9f254295 0025-ada-libgnarl-compatibility-for-musl.patch
|
||||
30369bea84020c32d514196ba3adb3d09d2d0359af5550bd3f9719aa357e44b2f695623c1d2a99416e120dc86896c196c5dd4f638183dced4799604137385367 0026-ada-musl-support-fixes.patch
|
||||
3f9a406d7d2ce34951215ffbcadb49a45e55ad5c24ab9097c0e5e92383e43b876872ccd2a7e7def2833ab204975ee5733f8bcf90934db9fa9c4f6f56c62081f6 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
720a4001f9a1fa4122e456077ecff8d3eb8af7c83d0a81f9da6a6cca05b23664206a82a349e34482c48bfe40e99aa5f21567613d0913f6a24f282bc84a994496 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
2044c23b23726965c0a6fd39f616cc464badd650947cb40495eeabd906a3af629878c1d28b403b8eb46b30a1a0ba39083023290d62f0c99ccf070063226e3f8f 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
58e8415612e1042329ad114471852c19f6bf15bf3bfd7cd81ceeafa75778bcc28410a01071a7c8cbf12b8f549acd85723215772813deedb8f266e28b9e01a353 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
d47b559075f40d526235f47b91da1d0cf6bfe6c5b7311bbfe08af9dd6e8f27e6c7cd82e3b2d529aab0536246fc56e2d42c089b22cacb0e7f09ca4a9d07556994 0031-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
b325035cb7122d79c6b42ca6d3fc9e02319ed2f7cddb0639dff25d2798d2ce63812cd623462cdf95e21c9ffbf2412193f8b9fc89a4c36fa5a6a041661ac7399d 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
c474f34e6f9a4239d486a65141a133dbe8ce91427d502a57a9fd6eb403478a2b5715ba74f24c1cc0761e16eec77ba2c1ca921fb7d7bc1e040fc3703fc9559e75 0033-libphobos-do-not-use-LFS64-symbols.patch
|
||||
c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1e0636e8890849a5719647bfbdf84f951d638f8f488cb718c 0034-libgo-fix-lfs64-use.patch
|
||||
cc1e10ac6e72db816f09325e301103109cc212a6f3de3ce0b9b038d149233c467319d203941695dbf3d7b9e2dcbbcd17609cdb056e831fcc323cd592423882d8 0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
|
||||
942d706e7f8ae8dbc85808e388b9c98de6bd922d49adeca63691218363a4f0b46829509ba1f1ed358ef436e1adf77ad7a820aaeb4bb03a4fc52cfdec118394f3 gcc-13-20230715.tar.xz
|
||||
438eda29a1851c72e65422bb4cd129ecc016f06f9bd038288e39762c01b932f786ed4aad587c7b16baf948c342c10dc9beff125166b97e0b8e0d05789aec95ce 0001-posix_memalign.patch
|
||||
4a7cd030e107b6e35fb883c80f21a547da14f540f989555ac2c9ba08958ace5b44dca194a96b460415c71f663e885954d73b04ade55f2f9d3cb116f50df8d8ca 0002-gcc-poison-system-directories.patch
|
||||
99b194f53677c3a75c3c376160673703f2d759d795ebd9f6e66d5ee095a648eba35d8aef1990a6a1e805c1cc1720636d7c23ef6102b674d92996b1e5646a0b2c 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
39013ad0b255e9cfd168010eefc32ec4d015fce2c2b4e864341a6aa8bdb74e52a08f0ae83f29e27e9524d4da27f28369a6aa4d76f6aed6490dc2961b18f90e94 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
|
||||
0ef08231bef5c77a38e8deaae4e00675de4312071425cf1db46ee54c3e00d2a5d1658a68302dd495c796d397e61e79efcf4e91fbd8fb2cd2e2fa539c2e884492 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
|
||||
8202e22832141fb12601546cec42472fdb194892f839e9fed86b4ab597204b6e6575c0585c283301eeb598ac1f06d16ce500d9c0ea333444bd50ae2a210d2d76 0006-Enable-Wformat-and-Wformat-security-by-default.patch
|
||||
1b239b94b570a0eff2249a9ec7ad150270c3210128f8f8a67e1554a044a039b2acc69768ebc57a15cec661f039c41fb7b620e7ec65320efbce40ceec1c9c6b90 0007-Enable-Wtrampolines-by-default.patch
|
||||
eb3ce4df99bf4f22ca4bac2d4e24be4c235098fb67ae118cb8efe360f0441a39a9931076fa615fbc3b7d2b2a541d4ffb2cfc56097224fbd8b5f09bc01a1d7878 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
|
||||
58a5ea76b4f7d662d3165dfeaad258087b0ec58b7ff87a62971c60817388ec6191d6dc841d63696d00fb68fe16b690790f3c0639e0edbd204033b4f8bbb4dafe 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
85d60bc6ef5f41854a5bc36847917dcee24bf6663fcd70b78a164a07fc08551f74fe37329b57cf187b95e23a6d04bce2ba620f21ac80c8df7d9cfcc8052089df 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
8ef0f45bc0639464537f39319f4954d9a9ab182e14a10c6e39455bebddd24dcdbe6ec3fc0316324a4f9d7dc1f95ec8babd7112c2ff05af54534e0fbe74ff6ebf 0011-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
d8467365c19339e52bcf27476b338fb412b6a7dd6eefd4fd92822e67c756a1f04a106f4e0c1c1909b4bee8f5f3b506a98614c1bf3478d7714415cca9eb7257e1 0012-libgcc_s.patch
|
||||
cab0cb6c462f2f4abefde020e17199366c6c24ad2582fe7d793c552aa2bcbe3148c5f6cd6245bc9ff86017d949ef4e6f063c8a01ce7d247abfe685077c57e71c 0013-nopie.patch
|
||||
b1277a4edc91208fecf5ad7015e8cf237d567b310063f26d14ff39c4aade683e6d1d54d817b7f4fef79db7dc456be9f09a5a8c0ceeff784f839521d0cf243807 0014-ada-fix-shared-linking.patch
|
||||
9fa42ba8374b8e47cb3d96315d783c990cf35075354869f5657383908c4d5f143ee94d1f7f86f52140a974f5fc872b22bcaec1f732ebc249357a86ad9e781d4e 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
05e1e06a6e33958ec5c22b26919fe142153c9605173ad90c770a32d7d48dfb5df421553f3030b6d979f34acbd3614d0e32c86c3cb0b819f3fbaa054f2962ff20 0016-add-fortify-headers-paths.patch
|
||||
784d488cf55fafa259d3aa874f4230453b4d3aeb94158d0c96caf26524b8b7f8cea12367a72fa4616389dfcb877c4a1c4fe9d1cb57a67c0329bbad61e91ee423 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
18c1092273005f4fcaec36830a2cbfbf5e2a2e4e82cf5f7f4f7f3141dbbe2731db2f47a9869f271b4ee337835962c7dfbf009165f2988a14ff40d6c6935986ce 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
4bbce70032f125002aa857b0561c80e15588847282c2ab2851c3c507a48d22613ef3affb288c33da461688890c7ce265c6175fb1580194669621653788172d1b 0019-aarch64-disable-multilib-support.patch
|
||||
d4bf0a7add6d531871324c36004f7d92eea9ad7042d567e43377e5bdde7dce8d87c649c3c4bdf0144b82d2607b46fab4eb821cf9a82ee4eddb003601b331e395 0020-s390x-disable-multilib-support.patch
|
||||
e0002f9aea22c923530591f97cfb29953cd924a78b3c7ae5d15ccaae46491c1f40b03a5dc5fc17a286299b82ef48248a9ecbf6eea9bbd2058189a697e9e2ffe8 0021-ppc64-le-disable-multilib-support.patch
|
||||
28b6e2f1574611964f8e2effa57dcb6efff5d562ec5f923abfa9ddeaf4a09b0c6941d1406b02d113f950113b7239dcc8dd6b14d06ade3b2f4dbdb7f6d5560bed 0022-x86_64-disable-multilib-support.patch
|
||||
6955ea39199f258340b69c8aa7021c65fc15179323f50be08952a302b77cec1a720b99ada60bf2a07594ba536a50b682d06290497fc9d4553c8e11e2f536a606 0023-riscv-disable-multilib-support.patch
|
||||
46bfcfc122a29060d6ff1fb52b509251ba44357df67f81be1c274fdfe9b80099b1a5ad64f7d40d8412bb437e6147cb404448b8e067989018bdaf2df5cdfabaef 0024-always-build-libgcc_eh.a.patch
|
||||
07b4028c8d8c7b8bc71c0fb4e31669fb2066aefdded556d0a65773fa93db097a55e9bfa9ac9ee10fbc82e4ba21aa84738e91c331b768cf7d067407934fc30064 0025-ada-libgnarl-compatibility-for-musl.patch
|
||||
7201a76ac033bd4f7532600d7a975f2aa9f93692cec42e28323e6e8e27f7357e0cb1497c12503829a41ed025e9c7953bf4738ad0d980687a774088fabaf08cdf 0026-ada-musl-support-fixes.patch
|
||||
f3974d1a693c0e382fa78ae94ebf768c6a1ca0ee631b478cf52a366537edae373cd0ab31369ef1ae0627d2834bcacfb94c9a4d01505c91eaac9d228a5933d0ae 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
8f77c3a908ec92966fb1697fd40cc936d4dca2624f6f14b199ba154f8c46be773548a571b41a1cf537134b011e3426deb443e4a13e49fb763c91c821ca1bae63 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
8cd10e3d10e3da0505cb4c09c4448335e5bbd18fe6e2c47cfa1257df3d83234983d71b1fdb0b4bfc76b24d477fd6e2d771b8eefacbb61e0ca1df105b980dbd4a 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
e026f1e20b78328b55b92a5fdf8f9d1d761176d2eea90556d7be8e2bae72d0dc52fd482d1eac8ab623e98653ca56d39b18fd2139ff99d420994b10c36f266ca6 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
80b41cf68a7e56bef50c05073cc79b9eafbd37535f6360deac16dfe5498ac041aaf91c3cc1bc6e323d574cd1da65aab22df32a03e39f606bff41a103063aafef 0031-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
b4917017c45d170c6878c7744c1ecababef4346903ee1f684d5a59d65255a5576d16d40137f7dbfe46144907c6389035966813e9024c9a4f499e963ed533947a 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
1cc7a5ef067bf543f6c1fa14dedc6378750a43be1649b18605699dffdc1ebce8b88405d3f12dd57e3d821c7d457d861ee0a54138c037917d6365b0bf69526e85 0033-libphobos-do-not-use-LFS64-symbols.patch
|
||||
77a1426e316b96b51edef9a35a64565d5f84b94d46a2fd7293ea406ede473b449613969f9e29cae44f8fbfbc767a27cef01b36392cf8ffb3f618c0df4e217c71 0034-libgo-fix-lfs64-use.patch
|
||||
"
|
||||
@@ -1,7 +1,7 @@
|
||||
From 47b4bd4deb2c356bb07d2a96f22127aefafec3a4 Mon Sep 17 00:00:00 2001
|
||||
From: Szabolcs Nagy <nsz@port70.net>
|
||||
Date: Fri, 26 Jan 2018 20:32:50 +0000
|
||||
Subject: [PATCH 01/35] posix_memalign
|
||||
Subject: [PATCH 01/34] posix_memalign
|
||||
|
||||
---
|
||||
gcc/config/i386/pmm_malloc.h | 9 +++++----
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 29 Mar 2013 08:59:00 +0400
|
||||
Subject: [PATCH 02/35] gcc: poison-system-directories
|
||||
Subject: [PATCH 02/34] gcc: poison-system-directories
|
||||
|
||||
Add /sw/include and /opt/include based on the original
|
||||
zecke-no-host-includes.patch patch. The original patch checked for
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ff4dd4ce33133e675b7bedc86b73357c04631cb9 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:45:49 +0000
|
||||
Subject: [PATCH 03/35] specs: turn on -Wl,-z,now by default
|
||||
Subject: [PATCH 03/34] specs: turn on -Wl,-z,now by default
|
||||
|
||||
Previously, we also used to turn on -z relro here, but we now build
|
||||
binutils with --enable-relro, which is functionally equivalent.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1b315235433701e4a974da259b8d651169ddc7ac Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:46:22 +0000
|
||||
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
Subject: [PATCH 04/34] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
ObjC, ObjC++, if the optimization level is > 0
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 67c0f5789630b27149f60ff831999ef7c1dba5d5 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:46:56 +0000
|
||||
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
|
||||
Subject: [PATCH 05/34] On linux targets pass --as-needed by default to the
|
||||
linker, but always link the sanitizer libraries with --no-as-needed.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From bb25e8489384504cd59e4a2538720863da1fb29c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:47:43 +0000
|
||||
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
|
||||
Subject: [PATCH 06/34] Enable -Wformat and -Wformat-security by default.
|
||||
|
||||
---
|
||||
gcc/c-family/c.opt | 4 ++--
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4a728ad48a7b437cc6f2697e26603bf648149f86 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:48:24 +0000
|
||||
Subject: [PATCH 07/35] Enable -Wtrampolines by default.
|
||||
Subject: [PATCH 07/34] Enable -Wtrampolines by default.
|
||||
|
||||
---
|
||||
gcc/common.opt | 2 +-
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 32f24560d0602f7735d5e9efd92fe3151bd72cea Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:49:40 +0000
|
||||
Subject: [PATCH 08/35] Disable ssp on -nostdlib, -nodefaultlibs and
|
||||
Subject: [PATCH 08/34] Disable ssp on -nostdlib, -nodefaultlibs and
|
||||
-ffreestanding Change the buffer size.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From c7ec8da7280d7f97f5543eb9ddeca7600aafc43c Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Fri, 21 Aug 2020 06:50:33 +0000
|
||||
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
|
||||
Subject: [PATCH 09/34] Ensure that msgfmt doesn't encounter problems during
|
||||
gcc bootstrapping.
|
||||
|
||||
Solves error messages like the following:
|
||||
|
||||
Loaded 100 of 1870 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user