Compare commits
3
Commits
hermetic-usr
..
kodi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
245778baf9 | ||
|
|
8f53e5394b | ||
|
|
4c70a7d6c2 |
No files matched your search
@@ -11,4 +11,12 @@ if [ "$(id -u)" = 0 ]; then
|
||||
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
|
||||
fi
|
||||
|
||||
# Wrap pmbootstrap to use this repository for --aports
|
||||
pmaports="$(cd "$(dirname "$0")"/..; pwd -P)"
|
||||
_pmbootstrap="$(command -v pmbootstrap)"
|
||||
pmbootstrap() {
|
||||
"$_pmbootstrap" --aports="$pmaports" "$@"
|
||||
}
|
||||
|
||||
.ci/lib/apkbuild_linting.py
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
image: alpine:latest
|
||||
stages:
|
||||
- build
|
||||
- hardware tests
|
||||
|
||||
variables:
|
||||
CI_TRON_TEMPLATE_PROJECT: &ci-tron-template-project postmarketOS/ci-common
|
||||
CI_TRON_JOB_TEMPLATE_PROJECT_URL: $CI_SERVER_URL/$CI_TRON_TEMPLATE_PROJECT
|
||||
CI_TRON_JOB_TEMPLATE_COMMIT: &ci-tron-template-commit 7c95b5f2d53533e8722abf57c73e558168e811f3
|
||||
|
||||
include:
|
||||
- project: *ci-tron-template-project
|
||||
ref: *ci-tron-template-commit
|
||||
file: '/ci-tron/common.yml'
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "parent_pipeline"
|
||||
|
||||
.build:
|
||||
# Create jobs, but do not run them unless this is
|
||||
# overriden in jobs that extend it
|
||||
stage: build
|
||||
interruptible: true
|
||||
before_script:
|
||||
# upgrade is mostly needed for "qemu" runners that run edge based on a VM
|
||||
# The other build jobs run natively in docker on latest alpine stable and
|
||||
# those should always have whatever we need
|
||||
- apk upgrade -U
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
after_script:
|
||||
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
|
||||
- mkdir -p keys
|
||||
- cp /home/pmos/.local/var/pmbootstrap/config_apk_keys/pmos@local*.pub keys/ || true
|
||||
- .ci/lib/move_logs.sh $CI_PROJECT_DIR
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- packages/
|
||||
- keys/
|
||||
timeout: 10 h
|
||||
|
||||
build:
|
||||
extends: .build
|
||||
parallel:
|
||||
matrix:
|
||||
{% for arch in archs %}
|
||||
- ARCH: {{ arch }}
|
||||
TAG: {{ archtag[arch] }}
|
||||
{% endfor %}
|
||||
{% if archs|length == 0 %}
|
||||
- ARCH: placeholder
|
||||
TAG: shared
|
||||
{% endif %}
|
||||
tags:
|
||||
- $TAG
|
||||
script:
|
||||
# Needed because gitlab fails if no jobs are ran:
|
||||
# - https://gitlab.com/gitlab-org/gitlab/-/issues/368248
|
||||
{% if archs|length == 0 %}
|
||||
- 'true'
|
||||
{% else %}
|
||||
- .ci/build-$ARCH.sh
|
||||
{% endif %}
|
||||
|
||||
# Hardware testing
|
||||
|
||||
# Define here all the gitlab-ci snippets that could be common between the
|
||||
# different packages
|
||||
|
||||
# Extends from this job if the the build job generates a kernel and initramfs
|
||||
# artifact for your target device. This will not work if your device generates
|
||||
# boot images.
|
||||
.device-boot-flow-separate-artifacts:
|
||||
variables:
|
||||
CI_TRON_KERNEL__URL: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/${KERNEL_NAME}"
|
||||
CI_TRON_INITRAMFS__INITRAMFS__URL: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/initramfs"
|
||||
|
||||
# NOTE: For fastboot devices, we will need to use something like this
|
||||
# .ci-tron-device-boot-flow-fastboot-image:
|
||||
# variables:
|
||||
# CI_TRON_FASTBOOT__BOOT_IMAGE: "glartifact://${CI_TRON__PMB_BUILD_JOB}/${CI_TRON__PMB_EXPORT_PATH}/bootimg"
|
||||
|
||||
# Include all the devices that need and can to be tested
|
||||
|
||||
{% for device in devices_under_test if device.is_present_in_ci %}
|
||||
prepare-{{ device.name }}:
|
||||
stage: hardware tests
|
||||
extends:
|
||||
.pmos-ci-tron-build-boot-artifacts
|
||||
{%- if device.has_kernel_variants %}
|
||||
# Let's build all the boot artifacts for all the supported kernels in
|
||||
# different jobs, but hide them behind a single job name so as not to pollute
|
||||
# the pipeline.
|
||||
parallel:
|
||||
matrix:
|
||||
- KERNEL_VARIANT:
|
||||
{%- for kernel in device.kernels %}
|
||||
- {{ kernel }}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
needs:
|
||||
- job: "build"
|
||||
parallel:
|
||||
matrix:
|
||||
- ARCH: "{{ device.arch }}"
|
||||
TAG: "{{ archtag[device.arch] }}"
|
||||
variables:
|
||||
DEVICE_NAME: {{ device.name }}
|
||||
# NOTE: All the packages that may influence testing should have an
|
||||
# `install-if postmarketos-mkinitfs-hook-ci`, so no need to add them here
|
||||
INSTALL_PACKAGES: {{ device.pkgname }} {{ device.pkgname }}-kernel-${KERNEL_VARIANT} postmarketos-mkinitfs-hook-ci
|
||||
|
||||
.test-{{ device.name }}:
|
||||
stage: hardware tests
|
||||
extends:
|
||||
- .pmos-ci-tron-initramfs-test
|
||||
{%- if device.has_kernel_variants %}
|
||||
# Let's test all the kernels in different jobs, but hide them behind a single
|
||||
# job name so as not to pollute the pipeline.
|
||||
parallel:
|
||||
matrix:
|
||||
- KERNEL_VARIANT:
|
||||
{%- for kernel in device.kernels %}
|
||||
- {{ kernel }}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
dependencies: []
|
||||
needs:
|
||||
- job: 'prepare-{{ device.name }}'
|
||||
artifacts: false
|
||||
# NOTE: We can't wait for a particular job in the matrix until GitLab implements support for it:
|
||||
# https://gitlab.com/gitlab-org/gitlab/-/issues/423553
|
||||
variables:
|
||||
CI_TRON__PMB_BUILD_JOB: "prepare-{{ device.name }}{% if device.has_kernel_variants %}: [$KERNEL_VARIANT]{% endif %}"
|
||||
CI_TRON_KERNEL_CMDLINE__DEVICEINFO: '{{ device.deviceinfo.kernel_cmdline }}'
|
||||
|
||||
# Include the gitlab ci yml fragment, as found in
|
||||
# `device/$category/device-$devicename/gitlab-ci.yml.j2` which defines the jobs
|
||||
{{ device.gitlab_ci_fragment }}
|
||||
|
||||
{% endfor %}
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/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
|
||||
@@ -24,6 +24,23 @@ def build_strict(packages, arch):
|
||||
"--arch", arch, ] + list(packages))
|
||||
|
||||
|
||||
def verify_checksums(packages, arch):
|
||||
# Only do this with one build-{arch} job
|
||||
arch_verify = "x86_64"
|
||||
if arch != arch_verify:
|
||||
print(f"NOTE: doing checksum verification in build-{arch_verify} job,"
|
||||
" not here.")
|
||||
return
|
||||
|
||||
if len(packages) == 0:
|
||||
print("no packages changed, not doing any checksums verification")
|
||||
return
|
||||
|
||||
common.run_pmbootstrap(["build_init"])
|
||||
common.run_pmbootstrap(["--details-to-stdout", "checksum", "--verify"] +
|
||||
list(packages))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Architecture to build for (as in build-{arch})
|
||||
if len(sys.argv) != 2:
|
||||
@@ -76,9 +93,18 @@ if __name__ == "__main__":
|
||||
# No packages: skip build
|
||||
if len(packages) == 0:
|
||||
print(f"no packages changed, which can be built for {arch}")
|
||||
sys.exit(0)
|
||||
|
||||
build_strict(packages, arch)
|
||||
else:
|
||||
verify_only = common.commit_message_has_string("[ci:skip-build]")
|
||||
if verify_only:
|
||||
# [ci:skip-build]: verify checksums and stop
|
||||
print("WARNING: not building changed packages ([ci:skip-build])!")
|
||||
print("verifying checksums: " + ", ".join(packages))
|
||||
verify_checksums(packages, arch)
|
||||
else:
|
||||
# Build packages
|
||||
print(f"building in strict mode for {arch}: {', '.join(packages)}")
|
||||
build_strict(packages, arch)
|
||||
|
||||
# Build packages in extra-repos/systemd
|
||||
# FIXME: this should probably be more generic, if other repos are added later?
|
||||
@@ -101,6 +127,15 @@ if __name__ == "__main__":
|
||||
# No packages: skip build
|
||||
if len(systemd_pkgs) == 0:
|
||||
print(f"no packages changed, which can be built for {arch}")
|
||||
sys.exit(0)
|
||||
|
||||
build_strict(systemd_pkgs, arch)
|
||||
else:
|
||||
verify_only = common.commit_message_has_string("[ci:skip-build]")
|
||||
if verify_only:
|
||||
# [ci:skip-build]: verify checksums
|
||||
print("WARNING: not building changed packages for extra-repos/systemd: ([ci:skip-build])!")
|
||||
print("verifying checksums: " + ", ".join(systemd_pkgs))
|
||||
verify_checksums(systemd_pkgs, arch)
|
||||
else:
|
||||
# Build packages
|
||||
print(f"building in strict mode for {arch}, from extra-repos/systemd: {', '.join(systemd_pkgs)}")
|
||||
build_strict(systemd_pkgs, arch)
|
||||
@@ -111,14 +111,6 @@ def check_versions(packages):
|
||||
" HEAD against HEAD~1.")
|
||||
commit = "HEAD~1"
|
||||
|
||||
# Exclude linux-next from pkgrel checks, as it is updated automatically.
|
||||
#
|
||||
# Without this, .ci/commits.sh complains about the following:
|
||||
# ERROR: Modified package(s) don't have an increased version or a new
|
||||
# package has a nonzero pkgrel!
|
||||
if "linux-next" in packages:
|
||||
packages.remove("linux-next")
|
||||
|
||||
for package in packages:
|
||||
# Get versions, skip new packages
|
||||
head = get_package_version(package, "HEAD")
|
||||
|
||||
@@ -2,18 +2,20 @@
|
||||
# Copyright 2023 Oliver Smith
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
from pathlib import Path
|
||||
import argparse
|
||||
import glob
|
||||
import os
|
||||
import sys
|
||||
import urllib.request
|
||||
|
||||
|
||||
def get_devices() -> list[str]:
|
||||
def get_devices():
|
||||
""":returns: list of all devices"""
|
||||
ret = []
|
||||
pmaports = Path(__file__).resolve().parents[2]
|
||||
for path in pmaports.glob("device/*/device-*/"):
|
||||
device = path.name.split("device-", 1)[1]
|
||||
pmaports = (os.path.realpath(os.path.join(os.path.dirname(__file__) +
|
||||
"/../..")))
|
||||
for path in glob.glob(pmaports + "/device/*/device-*/"):
|
||||
device = os.path.dirname(path).split("device-", 1)[1]
|
||||
|
||||
# -downstream suffix is used when packaging the downstream kernel for
|
||||
# devices that have a working mainline kernel. Those are usually
|
||||
@@ -26,7 +28,7 @@ def get_devices() -> list[str]:
|
||||
return sorted(ret)
|
||||
|
||||
|
||||
def get_wiki_devices_html(path: Path | None) -> dict[str, str]:
|
||||
def get_wiki_devices_html(path):
|
||||
""":param path: to a local file with the saved content of the devices wiki
|
||||
page or None to download a fresh copy
|
||||
:returns: HTML of the page, split into booting and not booting:
|
||||
@@ -39,9 +41,8 @@ def get_wiki_devices_html(path: Path | None) -> dict[str, str]:
|
||||
content = handle.read()
|
||||
else:
|
||||
# Download wiki page
|
||||
url = "https://wiki.postmarketos.org/wiki/Devices"
|
||||
with urllib.request.urlopen(url) as f:
|
||||
content = f.read().decode("utf-8")
|
||||
url = "http://wiki.postmarketos.org/wiki/Devices"
|
||||
content = urllib.request.urlopen(url).read().decode("utf-8")
|
||||
|
||||
# Split into booting and not booting
|
||||
split = content.split("<span class=\"mw-headline\" id=\"Non-booting_devices\">")
|
||||
@@ -52,16 +53,14 @@ def get_wiki_devices_html(path: Path | None) -> dict[str, str]:
|
||||
return {"booting": split[0], "not_booting": split[1]}
|
||||
|
||||
|
||||
def get_wiki_renamed_devices_html() -> str:
|
||||
def get_wiki_renamed_devices_html():
|
||||
""":returns: HTML of the page"""
|
||||
# Download wiki page
|
||||
url = "https://wiki.postmarketos.org/wiki/Renamed_Devices"
|
||||
with urllib.request.urlopen(url) as f:
|
||||
res: bytes = f.read()
|
||||
return res.decode("utf-8")
|
||||
url = "http://wiki.postmarketos.org/wiki/Renamed_Devices"
|
||||
return urllib.request.urlopen(url).read().decode("utf-8")
|
||||
|
||||
|
||||
def check_device(device: str, html: dict[str, str], is_booting: bool) -> bool:
|
||||
def check_device(device, html, is_booting):
|
||||
""":param is_booting: require the device to be in the booting section, not
|
||||
just anywhere in the page (i.e. in the not booting
|
||||
table).
|
||||
@@ -83,7 +82,7 @@ def check_device(device: str, html: dict[str, str], is_booting: bool) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
def main() -> int:
|
||||
def main():
|
||||
# Parse arguments
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--booting", help="devices must be in the upper table,"
|
||||
@@ -93,7 +92,7 @@ def main() -> int:
|
||||
action="store_true")
|
||||
parser.add_argument("--path", help="instead of downloading the devices"
|
||||
" page from the wiki, use a local HTML file",
|
||||
type=Path, default=None)
|
||||
default=None)
|
||||
args = parser.parse_args()
|
||||
|
||||
# Check all devices
|
||||
@@ -127,8 +126,8 @@ def main() -> int:
|
||||
print("wiki as well and make sure to add it here:")
|
||||
print("https://postmarketos.org/renamed")
|
||||
return 1
|
||||
|
||||
print("*** Wiki check successful!")
|
||||
else:
|
||||
print("*** Wiki check successful!")
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
+7
-18
@@ -41,9 +41,7 @@ def add_upstream_git_remote():
|
||||
|
||||
|
||||
def commit_message_has_string(needle):
|
||||
base_commit = get_base_commit()
|
||||
|
||||
return needle in run_git(["log", "--pretty=format:%B", f"{base_commit}..HEAD"])
|
||||
return needle in run_git(["show", "-s", "--format=full", "HEAD"])
|
||||
|
||||
|
||||
def run_pmbootstrap(parameters):
|
||||
@@ -88,10 +86,12 @@ def get_upstream_branch():
|
||||
return ret
|
||||
|
||||
|
||||
def get_base_commit() -> str:
|
||||
"""Get the base commit that can be compared with HEAD to get all commits in the
|
||||
given branch/merge request."""
|
||||
|
||||
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
|
||||
"""
|
||||
branch_upstream = f"upstream/{get_upstream_branch()}"
|
||||
commit_head = run_git(["rev-parse", "HEAD"])[:-1]
|
||||
commit_upstream = run_git(["rev-parse", branch_upstream])[:-1]
|
||||
@@ -107,17 +107,6 @@ def get_base_commit() -> str:
|
||||
commit = run_git(["merge-base", branch_upstream, "HEAD"])[:-1]
|
||||
print("comparing HEAD with: " + commit)
|
||||
|
||||
return commit
|
||||
|
||||
|
||||
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
|
||||
"""
|
||||
commit = get_base_commit()
|
||||
|
||||
# Changed files
|
||||
ret = set()
|
||||
print("changed file(s):")
|
||||
|
||||
@@ -1,232 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright 2025 Pablo Correa Gomez
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
from functools import cached_property
|
||||
from pathlib import Path
|
||||
from typing import Self
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
from jinja2 import Template
|
||||
import pmb.parse
|
||||
from pmb.parse.deviceinfo import Deviceinfo
|
||||
from pmb.types import Apkbuild
|
||||
import pmb.helpers.devices
|
||||
import pmb.helpers.logging
|
||||
import pmb.helpers.package
|
||||
from pmb.core.arch import Arch
|
||||
|
||||
# Same dir
|
||||
import common
|
||||
|
||||
|
||||
class Device:
|
||||
def __init__(self, codename: str):
|
||||
self.codename = codename
|
||||
self.full_path = pmb.helpers.devices.find_path(codename)
|
||||
|
||||
def __repr__(self):
|
||||
return f"Device({self.codename})"
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self.full_path.name.removeprefix("device-")
|
||||
|
||||
@cached_property
|
||||
def gitlab_ci_fragment(self) -> str | None:
|
||||
fragment_path = self.full_path / "gitlab-ci.yml.j2"
|
||||
try:
|
||||
fragment_tmpl = fragment_path.read_text()
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
return Template(fragment_tmpl).render(device=self)
|
||||
|
||||
@property
|
||||
def is_present_in_ci(self):
|
||||
return bool(self.gitlab_ci_fragment)
|
||||
|
||||
@cached_property
|
||||
def pmaports_path(self) -> Path:
|
||||
# Find the root of pmaports
|
||||
pmaports_root = self.full_path.parent
|
||||
while (not (pmaports_root / "pmaports.cfg").exists() and
|
||||
pmaports_root != pmaports_root.root):
|
||||
pmaports_root = pmaports_root.parent
|
||||
assert pmaports_root != pmaports_root.root
|
||||
|
||||
return self.full_path.relative_to(pmaports_root)
|
||||
|
||||
@cached_property
|
||||
def apkbuild(self) -> Apkbuild:
|
||||
return pmb.parse.apkbuild(self.full_path)
|
||||
|
||||
@property
|
||||
def pkgname(self) -> str:
|
||||
return self.apkbuild['pkgname']
|
||||
|
||||
@property
|
||||
def arch(self) -> Arch:
|
||||
return Arch(self.apkbuild['arch'][0])
|
||||
|
||||
@property
|
||||
def testing_dependencies(self) -> set[str]:
|
||||
# TODO: Source this from the APKGBUILD
|
||||
return {"postmarketos-mkinitfs-hook-ci"}
|
||||
|
||||
@cached_property
|
||||
def package_dependencies(self) -> list[str]:
|
||||
# HACK: Work around a bug in depends_recurse which prevents listing all the dependencies
|
||||
# Bug: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/issues/2623
|
||||
return {"postmarketos-initramfs"}
|
||||
# return pmb.helpers.package.depends_recurse(pkgname=self.pkgname,
|
||||
# arch=self.arch)
|
||||
|
||||
@cached_property
|
||||
def dependencies(self) -> set[str]:
|
||||
return self.package_dependencies | self.testing_dependencies
|
||||
|
||||
@cached_property
|
||||
def kernels(self) -> list[str] | None:
|
||||
kernels = []
|
||||
|
||||
subpackage_prefix = f"device-{self.codename}-kernel-"
|
||||
for subpkgname in self.apkbuild.get('subpackages', []):
|
||||
if not subpkgname.startswith(subpackage_prefix):
|
||||
continue
|
||||
kernel_name = subpkgname.removeprefix(subpackage_prefix)
|
||||
|
||||
# Ignore `none` kernels as they are not bootable
|
||||
if kernel_name != "none":
|
||||
kernels.append(kernel_name)
|
||||
|
||||
if kernels:
|
||||
return kernels
|
||||
else:
|
||||
return None
|
||||
|
||||
@cached_property
|
||||
def deviceinfo(self) -> dict[str, Deviceinfo] | Deviceinfo:
|
||||
# NOTE: deviceinfo files that have different values per kernel are
|
||||
# currently unsupported due to a gitlab-ci issue which prevents us
|
||||
# from having a per-kernel list of variables that would be selected
|
||||
# using `.extends`:
|
||||
# https://gitlab.com/gitlab-org/gitlab/-/issues/299423
|
||||
return Deviceinfo(self.full_path / "deviceinfo", None)
|
||||
|
||||
@property
|
||||
def has_kernel_variants(self):
|
||||
return len(self.kernels) > 0
|
||||
|
||||
@classmethod
|
||||
def supported_devices(cls) -> dict[Path, Self]:
|
||||
# NOTE: Not sure I like relying on pmboostrap just to avoid listing
|
||||
# devices ourselves, but since we need it to parse the APKBUILD, then
|
||||
# let's avoid duplicating the logic?
|
||||
supported_devices = {}
|
||||
for vendor in pmb.helpers.devices.list_vendors():
|
||||
for device in pmb.helpers.devices.list_codenames(vendor):
|
||||
try:
|
||||
dev = cls(device.codename)
|
||||
|
||||
# Ignore devices that do not have a gitlab ci fragment,
|
||||
# since we won't be able to make use of them
|
||||
if not dev.gitlab_ci_fragment:
|
||||
continue
|
||||
|
||||
supported_devices[dev.pmaports_path] = dev
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
return supported_devices
|
||||
|
||||
|
||||
class ArchTagSet(set):
|
||||
supported_arches = [
|
||||
Arch.x86_64,
|
||||
Arch.x86,
|
||||
Arch.aarch64,
|
||||
Arch.armv7,
|
||||
Arch.armhf,
|
||||
Arch.riscv64,
|
||||
]
|
||||
|
||||
def update(self, iterable):
|
||||
# This ignores things like !armv7, that could be a follow-up optimization
|
||||
if 'noarch' in iterable or 'all' in iterable:
|
||||
iterable = [arch for arch in self.supported_arches]
|
||||
super().update([Arch(arch) for arch in iterable if Arch(arch) in self.supported_arches])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Needs input to output if we should create the jobs
|
||||
if len(sys.argv) != 3:
|
||||
print("usage: generate_build_jobs.py TEMPLATE CHILD_PIPELINE")
|
||||
print(sys.argv)
|
||||
sys.exit(1)
|
||||
template = sys.argv[1]
|
||||
child_pipeline = sys.argv[2]
|
||||
|
||||
# pmb logging has to be initialized for later pmb commands to work, setting
|
||||
# to /dev/null since we don't care about the output. Later this could
|
||||
# be changed to a file and added as a CI artifact if we need to debug
|
||||
# something.
|
||||
pmb.logging.init(Path("/dev/null"), False)
|
||||
|
||||
# Load context
|
||||
sys.argv = ["pmbootstrap.py", "chroot"]
|
||||
args = pmb.parse.arguments()
|
||||
|
||||
# Get the list of supported devices
|
||||
supported_devices = Device.supported_devices()
|
||||
|
||||
archs = ArchTagSet()
|
||||
devices_under_test = set()
|
||||
packages_modified = set()
|
||||
# Get and print modified packages
|
||||
common.add_upstream_git_remote()
|
||||
for file in common.get_changed_files():
|
||||
path = Path(file)
|
||||
|
||||
# Check if the modified's file parent folder is one of a supported dev
|
||||
if device := supported_devices.get(path.parent):
|
||||
devices_under_test.add(device)
|
||||
|
||||
if path.name != "APKBUILD":
|
||||
continue
|
||||
elif not path.exists():
|
||||
continue # APKBUILD was deleted
|
||||
apkbuild = pmb.parse.apkbuild(path)
|
||||
packages_modified.add(apkbuild['pkgname'])
|
||||
archs.update(apkbuild["arch"])
|
||||
|
||||
# Add all the devices found in CI that depend on the package that got
|
||||
# modified
|
||||
for device in supported_devices.values():
|
||||
if apkbuild['pkgname'] in device.dependencies:
|
||||
devices_under_test.add(device)
|
||||
|
||||
if common.commit_message_has_string("[ci:skip-build]"):
|
||||
print("User requested skipping build, not creating child pipeline file")
|
||||
archs = ArchTagSet()
|
||||
devices_under_test = set()
|
||||
|
||||
print(f"Architectures to build: {archs}")
|
||||
print(f"Devices under test: {devices_under_test}")
|
||||
|
||||
with open(template) as f:
|
||||
rendered = Template(f.read()).render(
|
||||
archs=archs,
|
||||
devices_under_test=devices_under_test,
|
||||
packages_modified=packages_modified,
|
||||
archtag={
|
||||
Arch.x86_64: "shared",
|
||||
Arch.x86: "shared",
|
||||
Arch.aarch64: "arm64",
|
||||
Arch.armv7: "qemu",
|
||||
Arch.armhf: "qemu",
|
||||
Arch.riscv64: "qemu",
|
||||
},
|
||||
)
|
||||
with open(child_pipeline, "w") as fw:
|
||||
fw.write(rendered)
|
||||
@@ -1,199 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Unit testing framework for shell scripts
|
||||
# Invoke with the path to a tests/ subdir of a package and the
|
||||
# package name as arguments. Or source it with the following
|
||||
# variables set:
|
||||
# * results_dir - second argument to the test script
|
||||
|
||||
set -e
|
||||
|
||||
# Colors :D
|
||||
RED="\e[31m"
|
||||
GREEN="\e[32m"
|
||||
YELLOW="\e[33m"
|
||||
BLUE="\e[34m"
|
||||
BOLDBLUE="\e[1;34m"
|
||||
RESET="\e[0m"
|
||||
|
||||
testlib_path="$(realpath "$0")"
|
||||
|
||||
_test_assert_failed=""
|
||||
_test_testn=1
|
||||
_test_passedn=0
|
||||
_test_failedn=0
|
||||
_test_current_test=""
|
||||
_test_statefile="$(mktemp)"
|
||||
# Set by each test
|
||||
results_dir="${results_dir:-}"
|
||||
|
||||
test_log() {
|
||||
# ash supports echo -e
|
||||
# shellcheck disable=SC3037
|
||||
echo -e "$*" >&2
|
||||
}
|
||||
|
||||
test_info() {
|
||||
# shellcheck disable=SC3037
|
||||
echo -e "${BLUE}$*${RESET}" >&2
|
||||
}
|
||||
|
||||
test_debug() {
|
||||
# shellcheck disable=SC3037
|
||||
echo -e "${YELLOW}$*${RESET}" >&2
|
||||
}
|
||||
|
||||
assert_strequal() {
|
||||
# $1: first string
|
||||
# $2: second string
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
test_log "ERROR: assert_equal: not enough arguments given"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$1" != "$2" ]; then
|
||||
_test_assert_failed="$1 != $2"
|
||||
test_log " ❌ $_test_assert_failed"
|
||||
return
|
||||
fi
|
||||
test_log " ✅ $1 == $2"
|
||||
}
|
||||
|
||||
assert_equal() {
|
||||
# $1: name of variable
|
||||
# $2: value to compare
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
test_log "ERROR: assert_equal: not enough arguments given"
|
||||
exit 1
|
||||
fi
|
||||
val="$(eval echo "\$$1")"
|
||||
if [ "$val" != "$2" ]; then
|
||||
_test_assert_failed="\$$1 != $2 (got $val)"
|
||||
test_log " ❌ $_test_assert_failed"
|
||||
return
|
||||
fi
|
||||
test_log " ✅ \$$1 == $2"
|
||||
}
|
||||
|
||||
assert_unset() {
|
||||
if [ -z "$1" ]; then
|
||||
test_log "ERROR: assert_unset: not enough arguments given"
|
||||
exit 1
|
||||
fi
|
||||
val="$(eval echo \$"$1")"
|
||||
if [ -n "$val" ]; then
|
||||
_test_assert_failed="\$$1 should be unset (has value '$val')"
|
||||
test_log " ❌ $_test_assert_failed"
|
||||
return
|
||||
fi
|
||||
test_log " ✅ \$$1 is unset"
|
||||
}
|
||||
|
||||
# Log some expression and evaluate it
|
||||
logeval() {
|
||||
eval "$*"
|
||||
test_log "${YELLOW}+ $*${RESET}"
|
||||
}
|
||||
|
||||
# Start a test. Shell scripts involved in the test should be sourced AFTER calling this function!
|
||||
start_test() {
|
||||
if [ -n "$_test_current_test" ]; then
|
||||
test_log "ERROR: multiple calls to start_test without calling end_test first!"
|
||||
test_log "Current test: $_test_current_test"
|
||||
exit 1
|
||||
fi
|
||||
test_log "==> Test $_test_testn: $1"
|
||||
_test_current_test="$1"
|
||||
set > "$_test_statefile"
|
||||
}
|
||||
|
||||
# End a test and reset the environment.
|
||||
end_test() {
|
||||
local msg
|
||||
local save_assert_failed
|
||||
|
||||
# Restore environment
|
||||
save_assert_failed="$_test_assert_failed"
|
||||
|
||||
# Splitting is intentional
|
||||
# shellcheck disable=SC2046
|
||||
unset $(set | grep "='" | cut -d= -f1 | grep -vE "(PATH|IFS|TERM|LANG|HOME|PWD|SHELL|USER|save_assert_failed|_test_statefile)" )
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
. "$_test_statefile"
|
||||
_test_assert_failed="$save_assert_failed"
|
||||
|
||||
if [ -n "$_test_assert_failed" ]; then
|
||||
msg="${RED}Failed! ❌ ${_test_assert_failed}${RESET}"
|
||||
echo "Test $_test_testn: $_test_assert_failed" >> "$results_dir/failed"
|
||||
_test_failedn=$((_test_failedn+1))
|
||||
echo "$_test_failedn" > "$results_dir/failedn"
|
||||
unset _test_assert_failed
|
||||
else
|
||||
msg="${GREEN}Passed!${RESET}"
|
||||
_test_passedn=$((_test_passedn+1))
|
||||
echo "$_test_passedn" > "$results_dir/passedn"
|
||||
fi
|
||||
test_log "<== Test $_test_testn: $msg $_test_current_test\n"
|
||||
_test_testn=$((_test_testn+1))
|
||||
_test_current_test=""
|
||||
}
|
||||
|
||||
# Call at the end of each testsuite shell script
|
||||
end_testsuite() {
|
||||
if [ -n "$_test_current_test" ]; then
|
||||
test_log "${RED}ERROR: end_testsuite called without calling end_test first!${RESET}"
|
||||
test_log "${RED}Current test: $_test_current_test${RESET}"
|
||||
exit 1
|
||||
fi
|
||||
if [ -f "$results_dir/failed" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
run_tests() {
|
||||
local failed test_results_base
|
||||
local test name total passedn failedn t_passed t_failed
|
||||
|
||||
test_results_base="$(mktemp -d)"
|
||||
test_log "Running tests for $2"
|
||||
|
||||
# FIXME: yeah this isn't quite the best way to iterate the files
|
||||
# shellcheck disable=SC2010
|
||||
for name in $(ls "$1" | grep "\.sh$"); do
|
||||
test="$1/$name"
|
||||
mkdir "$test_results_base/$name"
|
||||
echo 0 > "$test_results_base/$name/passedn"
|
||||
echo 0 > "$test_results_base/$name/failedn"
|
||||
test_log
|
||||
test_log "${BOLDBLUE}# Test suite ${name}${RESET}"
|
||||
$test "$testlib_path" "$test_results_base/$name" || failed="$failed $name"
|
||||
t_passed=$(cat "$test_results_base/$name/passedn")
|
||||
t_failed=$(cat "$test_results_base/$name/failedn")
|
||||
passedn=$((passedn+t_passed))
|
||||
failedn=$((failedn+t_failed))
|
||||
total=$((total+t_passed+t_failed))
|
||||
done
|
||||
if [ -n "$failed" ]; then
|
||||
test_log
|
||||
test_log "Some tests failed:"
|
||||
for test in $failed; do
|
||||
test_log "❌ $test"
|
||||
test_log " ${RED}$(cat "$test_results_base/$test/failed")${RESET}"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $passedn -lt $total ]; then
|
||||
test_log "[${RED}$passedn/$total tests passed${RESET}]"
|
||||
else
|
||||
test_log "[${GREEN}$passedn/$total tests passed!${RESET}]"
|
||||
fi
|
||||
test_log
|
||||
|
||||
if [ -n "$failed" ]; then exit 1; else exit 0; fi
|
||||
}
|
||||
|
||||
# FIXME: probably not the best way to determine if this was sourced
|
||||
if [ $# -gt 0 ]; then
|
||||
run_tests "$1" "$2"
|
||||
fi
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright 2025 Pablo Correa Gomez
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Same dir
|
||||
import common
|
||||
|
||||
# pmbootstrap
|
||||
import add_pmbootstrap_to_import_path
|
||||
import pmb.core
|
||||
from pmb.core.context import get_context
|
||||
|
||||
|
||||
def verify_checksums(packages):
|
||||
if len(packages) == 0:
|
||||
print("no packages changed, not doing any checksums verification")
|
||||
return
|
||||
|
||||
print("verifying checksums: " + ", ".join(packages))
|
||||
common.run_pmbootstrap(["build_init"])
|
||||
common.run_pmbootstrap(["--details-to-stdout", "checksum", "--verify"] +
|
||||
list(packages))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Get and print modified packages
|
||||
common.add_upstream_git_remote()
|
||||
packages = common.get_changed_packages()
|
||||
|
||||
# Load context
|
||||
sys.argv = ["pmbootstrap.py", "chroot"]
|
||||
args = pmb.parse.arguments()
|
||||
context = get_context()
|
||||
|
||||
# Get set of all buildable packages for the enabled repos, for skipping unbuildable
|
||||
# aports later. We might be given a changed aport from e.g. extra-repos/systemd when
|
||||
# that repo is not enabled
|
||||
buildable_pkgs = set()
|
||||
for path in pmb.core.pkgrepo.pkgrepo_iter_package_dirs():
|
||||
buildable_pkgs.add(os.path.basename(path))
|
||||
|
||||
# To store a list of packages from extra-repos/systemd for special handling
|
||||
# later:
|
||||
systemd_pkgs = list()
|
||||
|
||||
# Filter out packages are not found in enabled repos
|
||||
# (Iterate over copy of packages, because we modify it in this loop)
|
||||
for package in packages.copy():
|
||||
if package not in buildable_pkgs:
|
||||
print(f"{package}: not in current repo, skipping")
|
||||
packages.remove(package)
|
||||
# FIXME: this should probably be more generic, if other repos are added
|
||||
# later?
|
||||
# This just tosses the package into the list of packages to try
|
||||
# building later w/ systemd enabled, and assumes it'll be found
|
||||
# there.
|
||||
print(f"{package}: adding to list of packages to check in systemd repo")
|
||||
systemd_pkgs.append(package)
|
||||
continue
|
||||
|
||||
# No packages: skip build
|
||||
if len(packages) == 0:
|
||||
print("no packages to check for the current repo")
|
||||
else:
|
||||
verify_checksums(packages)
|
||||
|
||||
# FIXME: this should probably be more generic, if other repos are added later?
|
||||
if systemd_pkgs:
|
||||
common.run_pmbootstrap(["config", "systemd", "always"])
|
||||
# To fix the ERROR: Chroot 'native' is for the 'edge' channel, but you are on the
|
||||
# 'systemd-edge' channel. Run 'pmbootstrap zap' to delete your chroots and try again.
|
||||
# To do this automatically, run 'pmbootstrap config auto_zap_misconfigured_chroots yes'.
|
||||
common.run_pmbootstrap(["config", "auto_zap_misconfigured_chroots", "yes"])
|
||||
|
||||
# No packages: skip build
|
||||
if len(systemd_pkgs) == 0:
|
||||
print("no packages to check for the systemd repo")
|
||||
|
||||
else:
|
||||
verify_checksums(systemd_pkgs)
|
||||
+2
-2
@@ -15,6 +15,7 @@ fi
|
||||
# Shell: shellcheck
|
||||
sh_files="
|
||||
./main/mdss-fb-init-hack/mdss-fb-init-hack.sh
|
||||
./main/postmarketos-base/rootfs-usr-lib-firmwareload.sh
|
||||
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-dns-filter.sh
|
||||
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-tethering.sh
|
||||
./main/postmarketos-installkernel/installkernel-pmos
|
||||
@@ -38,11 +39,10 @@ sh_files="
|
||||
$(find . -path './main/postmarketos-mvcfg/*.sh')
|
||||
|
||||
$(find . -path './.ci/**.sh')
|
||||
$(find . -path '**/tests/*.sh')
|
||||
"
|
||||
|
||||
for file in $sh_files; do
|
||||
echo "Test with shellcheck: $file"
|
||||
cd "$DIR/$(dirname "$file")"
|
||||
shellcheck -S warning -e SC1008 -e SC3043 -x "$(basename "$file")"
|
||||
shellcheck -e SC1008 -e SC3043 -x "$(basename "$file")"
|
||||
done
|
||||
@@ -120,13 +120,13 @@ def test_aports_maintained():
|
||||
assert maintainers, f"{path} in community needs at least 1 Maintainer"
|
||||
|
||||
|
||||
def test_aports_archived():
|
||||
def test_aports_unmaintained():
|
||||
"""
|
||||
Ensure that aports in /device/archived have an "Archived:" comment
|
||||
that describes why the aport is archived.
|
||||
Ensure that aports in /device/unmaintained have an "Unmaintained:" comment
|
||||
that describes why the aport is unmaintained.
|
||||
"""
|
||||
|
||||
for path in pkgrepo_iglob("device/archived/*/APKBUILD"):
|
||||
archived = pmb.parse._apkbuild.archived(path)
|
||||
assert archived, f"{path} should have an Archived: " +\
|
||||
"comment that describes why the package is archived"
|
||||
for path in pkgrepo_iglob("device/unmaintained/*/APKBUILD"):
|
||||
unmaintained = pmb.parse._apkbuild.unmaintained(path)
|
||||
assert unmaintained, f"{path} should have an Unmaintained: " +\
|
||||
"comment that describes why the package is unmaintained"
|
||||
@@ -74,8 +74,7 @@ def test_deviceinfo():
|
||||
name = info.name
|
||||
manufacturer = info.manufacturer
|
||||
if not name.startswith(manufacturer) and \
|
||||
not name.startswith("Google") and \
|
||||
not name.startswith("Jolla"):
|
||||
not name.startswith("Google"):
|
||||
raise RuntimeError("Please add the manufacturer in front of"
|
||||
" the deviceinfo_name, e.g.: '" +
|
||||
manufacturer + " " + name + "'")
|
||||
|
||||
@@ -8,7 +8,6 @@ expected_directories = [
|
||||
"cross",
|
||||
"device/archived",
|
||||
"device/community",
|
||||
"device/downstream",
|
||||
"device/main",
|
||||
"device/testing",
|
||||
"extra-repos/systemd",
|
||||
@@ -70,9 +69,5 @@ def test_files_belong_to_package():
|
||||
"both contain an APKBUILD"
|
||||
package_dir = dirpath
|
||||
|
||||
# Skip specific ".gitlab-ci.yml" files outside of usual structure
|
||||
if dirpath in ["./cross"]:
|
||||
files[:] = [f for f in files if f != ".gitlab-ci.yml"]
|
||||
|
||||
assert not files or package_dir, "Found files that do not belong to any package: " \
|
||||
f"{dirpath}/{files}"
|
||||
@@ -23,7 +23,7 @@ def test_aports_kernel():
|
||||
apkbuild = pmb.parse.apkbuild(path)
|
||||
aport_name = os.path.basename(os.path.dirname(path))
|
||||
|
||||
if aport_name == "linux-pam-pmos":
|
||||
if aport_name == "linux-pam":
|
||||
continue # This package isn't a linux kernel!
|
||||
|
||||
if "pmb:cross-native" not in apkbuild["options"]:
|
||||
|
||||
@@ -6,7 +6,6 @@ import logging
|
||||
import os
|
||||
import pytest
|
||||
import sys
|
||||
import re
|
||||
|
||||
import add_pmbootstrap_to_import_path
|
||||
import pmb.parse
|
||||
@@ -45,29 +44,25 @@ def apkbuild_check_provides(path, apkbuild, version, pkgname, subpkgname=None):
|
||||
# already replaces the variables, so we check against the inserted
|
||||
# values here.
|
||||
if not provide.endswith(f"={version}"):
|
||||
# Valid version strings, per the APKBUILD reference, are fine. This regex
|
||||
# attempts to detect those.
|
||||
pattern = r'^\d+(\.\d+)*[a-z]?(_(?:alpha|beta|pre|rc|cvs|svn|git|hg|p)\d*)*-r\d+$'
|
||||
[provide_no_ver, provide_ver] = provide.split("=", 1)
|
||||
if not re.match(pattern, provide_ver):
|
||||
error = f"error in , provide_ver{path}:\n"
|
||||
if subpkgname:
|
||||
error += f"in subpackage:\n {subpkgname}\n"
|
||||
else:
|
||||
error += f"in package:\n {pkgname}\n"
|
||||
error += f"broken provides entry:\n {provide_no_ver}\n"
|
||||
error += "\n"
|
||||
error += "This provides entry needs to be changed to"
|
||||
error += f" '{provide_no_ver}=$pkgver-r$pkgrel'"
|
||||
error += " (do not replace the variables, without '').\n"
|
||||
error += "\n"
|
||||
error += "If you know what you are doing and didn't add the"
|
||||
error += " version on purpose, you also need to set a"
|
||||
error += " provider_priority (pma#1766).\n"
|
||||
error += "Reference:"
|
||||
error += " https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#provides"
|
||||
error += f"\nVERSION: {provide_no_ver}"
|
||||
ret += [error]
|
||||
provide_no_ver = provide.split("=", 1)[0]
|
||||
|
||||
error = f"error in {path}:\n"
|
||||
if subpkgname:
|
||||
error += f"in subpackage:\n {subpkgname}\n"
|
||||
else:
|
||||
error += f"in package:\n {pkgname}\n"
|
||||
error += f"broken provides entry:\n {provide_no_ver}\n"
|
||||
error += "\n"
|
||||
error += "This provides entry needs to be changed to"
|
||||
error += f" '{provide_no_ver}=$pkgver-r$pkgrel'"
|
||||
error += " (do not replace the variables, without '').\n"
|
||||
error += "\n"
|
||||
error += "If you know what you are doing and didn't add the"
|
||||
error += " version on purpose, you also need to set a"
|
||||
error += " provider_priority (pma#1766).\n"
|
||||
error += "Reference:"
|
||||
error += " https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#provides"
|
||||
ret += [error]
|
||||
return ret
|
||||
|
||||
|
||||
|
||||
@@ -99,14 +99,13 @@ def test_aports_unreferenced_files():
|
||||
for file in glob.iglob(dirname + "/**", recursive=True):
|
||||
rel_file_path = os.path.relpath(file, dirname)
|
||||
# Skip APKBUILDs and directories
|
||||
if rel_file_path in ["APKBUILD", "gitlab-ci.yml.j2"] or os.path.isdir(file):
|
||||
if rel_file_path == "APKBUILD" or os.path.isdir(file):
|
||||
continue
|
||||
|
||||
if os.path.basename(rel_file_path) not in sources_chk \
|
||||
and rel_file_path not in apkbuild["install"] \
|
||||
and rel_file_path not in subpackage_installs \
|
||||
and rel_file_path not in trigger_sources \
|
||||
and not rel_file_path.startswith("tests/"):
|
||||
and rel_file_path not in trigger_sources:
|
||||
raise RuntimeError(f"{apkbuild_path}: found unreferenced file: {rel_file_path}")
|
||||
|
||||
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright 2025 Oliver Smith
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
import logging
|
||||
import os
|
||||
|
||||
import pmb.parse
|
||||
from pmb.core.context import get_context
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def test_systemd_stage0_version():
|
||||
"""Ensure systemd-stage0 and systemd have the same pkgver."""
|
||||
# Don't clutter output with verbose APKBUILD parsing messages
|
||||
logging.getLogger().setLevel(logging.DEBUG)
|
||||
|
||||
config = get_context().config
|
||||
pma_systemd = os.path.join(config.aports[0], "extra-repos/systemd")
|
||||
|
||||
sd0 = pmb.parse.apkbuild(Path(os.path.join(pma_systemd, "systemd-stage0/APKBUILD")))
|
||||
sd1 = pmb.parse.apkbuild(Path(os.path.join(pma_systemd, "systemd/APKBUILD")))
|
||||
|
||||
assert sd0["pkgver"] == sd1["pkgver"], (
|
||||
f"systemd-stage0 pkgver ({sd0['pkgver']}) doesn't match systemd pkgver ({sd1['pkgver']})!"
|
||||
)
|
||||
@@ -26,10 +26,9 @@ def test_aports_ui():
|
||||
continue
|
||||
|
||||
for package in apkbuild["_pmb_recommends"]:
|
||||
depend = pmb.helpers.package.get(
|
||||
package, arch, must_exist=False, try_other_arches=False
|
||||
)
|
||||
if depend is None:
|
||||
depend = pmb.helpers.package.get(package,
|
||||
arch, must_exist=False)
|
||||
if depend is None or not pmb.helpers.package.check_arch(package, arch):
|
||||
raise RuntimeError(f"{path}: package '{package}' from"
|
||||
f" _pmb_recommends not found for arch '{arch}'")
|
||||
|
||||
@@ -37,9 +36,8 @@ def test_aports_ui():
|
||||
if f"{apkbuild['pkgname']}-extras" in apkbuild["subpackages"]:
|
||||
apkbuild = apkbuild["subpackages"][f"{apkbuild['pkgname']}-extras"]
|
||||
for package in apkbuild["_pmb_recommends"]:
|
||||
depend = pmb.helpers.package.get(
|
||||
package, arch, must_exist=False, try_other_arches=False
|
||||
)
|
||||
if depend is None:
|
||||
depend = pmb.helpers.package.get(package,
|
||||
arch, must_exist=False)
|
||||
if depend is None or not pmb.helpers.package.check_arch(package, arch):
|
||||
raise RuntimeError(f"{path}: package '{package}' from _pmb_recommends "
|
||||
f"of -extras subpackage is not found for arch '{arch}'")
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
# Description: run unit-tests for packages
|
||||
# https://postmarketos.org/pmb-ci
|
||||
#
|
||||
# This script only exists to allow running unit-tests locally.
|
||||
# In actual CI the package tests/ subdir has it's own YAML
|
||||
# fine defining a job which calls testlib for that package.
|
||||
# This way we can run all the package unit-tests locally but
|
||||
# have them be individual jobs in GitLab.
|
||||
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
set -x
|
||||
exec su "${TESTUSER:-build}" -c "sh -e $0"
|
||||
fi
|
||||
|
||||
find . -type d -name "tests" | while read -r testdir; do
|
||||
pkg="$(basename "$(dirname "$testdir")")"
|
||||
.ci/lib/testlib.sh "$testdir" "$pkg"
|
||||
done
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
# Description: verify checksums of modified packages
|
||||
# Options: native
|
||||
# Use 'native' because it requires running pmbootstrap.
|
||||
# https://postmarketos.org/pmb-ci
|
||||
|
||||
if [ "$(id -u)" = 0 ]; then
|
||||
set -x
|
||||
wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
|
||||
sh ./install_pmbootstrap.sh
|
||||
exec su "${TESTUSER:-pmos}" -c "sh -e $0"
|
||||
fi
|
||||
|
||||
export PYTHONUNBUFFERED=1
|
||||
|
||||
.ci/lib/verify_checksums.py
|
||||
@@ -37,30 +37,13 @@ prepend_msg() {
|
||||
[ -z "$SOURCE" ] || exit 0
|
||||
|
||||
lcp=$(git diff-index --name-only --cached HEAD | longest_common_prefix)
|
||||
prefix=""
|
||||
|
||||
case "$lcp" in
|
||||
extra-repos/systemd/systemd/*)
|
||||
prefix="systemd"
|
||||
;;
|
||||
extra-repos/systemd/*)
|
||||
prefix="systemd/$(echo "$lcp" | cut -d/ -f3)"
|
||||
;;
|
||||
device/*/*)
|
||||
prefix="$(echo "$lcp" | cut -d/ -f3)"
|
||||
;;
|
||||
device/*)
|
||||
# Multiple packages touched for same device category. More
|
||||
# logic could be added to detect if they all belong to same
|
||||
# device.
|
||||
;;
|
||||
[^.]*/*)
|
||||
prefix="$(echo "$lcp" | cut -d/ -f1-2)"
|
||||
;;
|
||||
device/*/*) prepend_msg "$(echo "$lcp" | cut -d/ -f3): ";;
|
||||
# Multiple packages touched for same device category
|
||||
# More logic could be added to detect if they all belong to same device
|
||||
device/*) ;;
|
||||
[^.]*/*) prepend_msg "$(echo "$lcp" | cut -d/ -f1-2): ";;
|
||||
esac
|
||||
|
||||
if [ -n "$prefix" ]; then
|
||||
prepend_msg "$prefix: "
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -118,6 +118,3 @@ ENV/
|
||||
|
||||
# Allow having untracked packages in aports using a custom-something directory
|
||||
/custom-*/
|
||||
|
||||
# child pipeline
|
||||
.ci/build-jobs.yaml
|
||||
+57
-66
@@ -2,40 +2,38 @@
|
||||
|
||||
# global settings
|
||||
image: alpine:latest
|
||||
before_script: &global_before_scripts
|
||||
- apk upgrade -U
|
||||
after_script:
|
||||
- .ci/lib/move_logs.sh $CI_PROJECT_DIR
|
||||
stages:
|
||||
- lint
|
||||
- prepare
|
||||
- build
|
||||
- autoupdate
|
||||
- test
|
||||
variables:
|
||||
# Default of 20 is pretty small, sometimes MRs have >20 commits in them. 100
|
||||
# seems like a reasonable balance. If this is too low, git merge-base (from ci/
|
||||
# common.py) can fail
|
||||
GIT_DEPTH: 100
|
||||
|
||||
|
||||
# This defines the rules for when a pipeline should run.
|
||||
workflow:
|
||||
rules:
|
||||
# Don't run branch pipeline if an MR is open (only the MR pipeline will run)
|
||||
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
|
||||
when: never
|
||||
# Run for merge requests
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
# Run scheduled pipeline for autoupdate or manually triggered pipeline
|
||||
- if: $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"
|
||||
|
||||
# Some packages have their own yaml files defining tests. All of these should contain
|
||||
# only jobs which extend the .package-test job!
|
||||
include: "**/.gitlab-ci.yml"
|
||||
|
||||
# device documentation
|
||||
wiki:
|
||||
stage: lint
|
||||
rules:
|
||||
- if: &mr_rule $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
- if: &mr_rule $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false"
|
||||
changes:
|
||||
- .ci/**/*
|
||||
- .ci/build-jobs.yaml.j2
|
||||
- .gitlab-ci.yml
|
||||
- device/*/device-*/*
|
||||
script:
|
||||
@@ -50,7 +48,6 @@ ruff:
|
||||
changes:
|
||||
- .ci/*
|
||||
- .ci/*/*
|
||||
- .ci/build-jobs.yaml.j2
|
||||
- .gitlab-ci.yml
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
@@ -59,15 +56,18 @@ ruff:
|
||||
# shellcheck and various grep checks
|
||||
shellcheck-grep:
|
||||
stage: lint
|
||||
image: alpine:edge
|
||||
rules:
|
||||
- if: *mr_rule
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/shellcheck.sh
|
||||
- .ci/grep.sh
|
||||
- .ci/codeowners.sh
|
||||
|
||||
editor-config:
|
||||
stage: lint
|
||||
image: alpine:edge
|
||||
rules:
|
||||
- if: *mr_rule
|
||||
script:
|
||||
@@ -116,15 +116,6 @@ kernel-kconfig:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/kconfig.sh
|
||||
|
||||
# Verify checksums
|
||||
verify-checksums:
|
||||
stage: lint
|
||||
rules:
|
||||
- if: *mr_rule
|
||||
script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
- .ci/verify-checksums.sh
|
||||
|
||||
# MR settings
|
||||
# (Checks for "Allow commits from members who can merge to the target branch")
|
||||
mr-settings:
|
||||
@@ -132,53 +123,61 @@ mr-settings:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
before_script:
|
||||
- *global_before_scripts
|
||||
- apk -q add python3
|
||||
script:
|
||||
- wget -q "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
|
||||
- python3 ./check_mr_settings.py
|
||||
|
||||
# Calculate build of changed aports using a dynamic downstream pipelines:
|
||||
# https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#dynamic-child-pipelines
|
||||
# For those to work, we need two jobs:
|
||||
# * First one (this one) that generates a valid yaml file with the job yaml as
|
||||
# an artifact
|
||||
# * Second one (build-jobs) that has a "trigger" key with the yaml file from
|
||||
# which to trigger pipelines
|
||||
# To avoid reworking the whole CI file, for now we are re-using this same file
|
||||
# to trigger the downstream pipeline. In that case, $CI_PIPELINE_SOURCE will
|
||||
# be set to "parent_pipeline", and only the jobs that extend .build will run
|
||||
generate-build-jobs:
|
||||
stage: prepare
|
||||
before_script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
needs: []
|
||||
script:
|
||||
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
|
||||
- sh ./install_pmbootstrap.sh py3-jinja2
|
||||
|
||||
# HACK: Make the pmb library happy to use the currently-cloned pmaports repo
|
||||
- mkdir -p /root/.local/var/pmbootstrap/cache_git/ && ln -s $PWD /root/.local/var/pmbootstrap/cache_git/pmaports
|
||||
|
||||
- PYTHONPATH=/tmp/pmbootstrap/ .ci/lib/generate_build_jobs.py .ci/build-jobs.yaml.j2 .ci/build-jobs.yaml
|
||||
|
||||
artifacts:
|
||||
paths:
|
||||
- .ci/build-jobs.yaml
|
||||
rules:
|
||||
- if: *mr_rule
|
||||
|
||||
build-jobs:
|
||||
# build changed aports
|
||||
.build:
|
||||
stage: build
|
||||
trigger:
|
||||
include:
|
||||
- artifact: .ci/build-jobs.yaml
|
||||
job: generate-build-jobs
|
||||
strategy: depend
|
||||
forward:
|
||||
# So that we don't have to duplicate GIT_DEPTH
|
||||
pipeline_variables: true
|
||||
rules:
|
||||
- if: *mr_rule
|
||||
before_script:
|
||||
- *global_before_scripts
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
after_script:
|
||||
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- packages/
|
||||
timeout: 10 h
|
||||
|
||||
build-x86_64:
|
||||
extends: .build
|
||||
script:
|
||||
- .ci/build-x86_64.sh
|
||||
|
||||
build-x86:
|
||||
extends: .build
|
||||
script:
|
||||
- .ci/build-x86.sh
|
||||
|
||||
build-aarch64:
|
||||
extends: .build
|
||||
tags: [arm64]
|
||||
script:
|
||||
- .ci/build-aarch64.sh
|
||||
|
||||
build-armv7:
|
||||
extends: .build
|
||||
tags: [qemu]
|
||||
script:
|
||||
- .ci/build-armv7.sh
|
||||
|
||||
build-armhf:
|
||||
extends: .build
|
||||
tags: [qemu]
|
||||
script:
|
||||
- .ci/build-armhf.sh
|
||||
|
||||
build-riscv64:
|
||||
extends: .build
|
||||
tags: [qemu]
|
||||
script:
|
||||
- .ci/build-riscv64.sh
|
||||
|
||||
auto-update:
|
||||
stage: autoupdate
|
||||
@@ -198,11 +197,3 @@ auto-update:
|
||||
- log.txt
|
||||
- log_testsuite_pmaports.txt
|
||||
- pmbootstrap.cfg
|
||||
|
||||
# Template for package test jobs defined per-package
|
||||
.package-test:
|
||||
stage: test
|
||||
rules:
|
||||
- if: *mr_rule
|
||||
before_script:
|
||||
- .ci/lib/gitlab_prepare_ci.sh
|
||||
@@ -27,13 +27,13 @@
|
||||
Replace space inside `[ ]` with `x` to fill the checkbox
|
||||
-->
|
||||
* [ ] edge (`master` branch)
|
||||
* [ ] `v25.06`
|
||||
* [ ] `v24.12`
|
||||
* [ ] `v24.06` (supported until 2025-01-23)
|
||||
|
||||
* [ ] I confirm that the issue still is present after running `sudo apk upgrade -a`
|
||||
|
||||
### On what environment did you encounter the issue?
|
||||
#### Environments
|
||||
* [ ] COSMIC
|
||||
* [ ] GNOME Shell on Mobile
|
||||
* [ ] Phosh
|
||||
* [ ] Plasma Mobile
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
Casey Connolly <casey.connolly@linaro.org> <caleb.connolly@linaro.org>
|
||||
Casey Connolly <kcxt@postmarketos.org> <caleb@postmarketos.org>
|
||||
Achill Gilgenast <achill@achill.org> <fossdd@pwned.life>
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"subject_format": {
|
||||
"pass": [
|
||||
"^(([a-z]+\\/\\)?\\([a-z\\-0-9*{}]+),?)+: [a-z][A-Za-z\\/\\-0-9*{}\\.,_&:=' ]+( \\(MR \\d+\\)|)$",
|
||||
"^CI: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\.,_ ]+( \\(MR \\d+\\)|)$",
|
||||
"^mrhlpr.json: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\.,_ ]+( \\(MR \\d+\\)|)$",
|
||||
"^pmaports.cfg: [a-z-0-9*{}\\(\\)\\.,_ ][A-Za-z\\/\\-0-9*{}\\.,_ ]+( \\(MR \\d+\\)|)$"
|
||||
]
|
||||
}
|
||||
}
|
||||
+160
@@ -0,0 +1,160 @@
|
||||
# https://docs.gitlab.com/ee/user/project/code_owners.html
|
||||
# Put groups like @sdm845-mainline into test_device.py:gitlab_groups.
|
||||
# Order lines alphabetically!
|
||||
|
||||
device/*/*-amlogic-s905*/ @funderscore
|
||||
device/*/*-arrow-db410c/ @Minecrell
|
||||
device/*/*-asus-me176c/ @Minecrell
|
||||
device/*/*-ayn-odin/ @jenneron
|
||||
device/*/*-bq-paella/ @Minecrell
|
||||
device/*/*-bq-tenshi/ @fossdd
|
||||
device/*/*-google-gru/ @jenneron
|
||||
device/*/*-google-kukui/ @jenneron @binarycraft
|
||||
device/*/*-google-oak/ @jenneron @adamthiede
|
||||
device/*/*-google-trogdor/ @jenneron
|
||||
device/*/*-google-veyron/ @jenneron
|
||||
device/*/*-google-x64cros/ @jenneron @JustSoup321 @alpernebbi
|
||||
device/*/*-htc-golfu/ @Newbyte
|
||||
device/*/*-htc-m8qlul/ @Newbyte
|
||||
device/*/*-kobo-clara/ @akemnade
|
||||
device/*/*-lenovo-21bx/ @craftyguy @jane400
|
||||
device/*/*-lenovo-a6000/ @jenneron @Minecrell
|
||||
device/*/*-lenovo-a6010/ @jenneron @Minecrell
|
||||
device/*/*-librecomputer-lafrite/ @funderscore
|
||||
device/*/*-librecomputer-lepotato/ @funderscore
|
||||
device/*/*-librecomputer-solitude/ @Newbyte @funderscore
|
||||
device/*/*-motorola-harpia/ @Minecrell
|
||||
device/*/*-nokia-n900/ @sicelo @Danct12
|
||||
device/*/*-pine64-pinebookpro/ @QC8086
|
||||
device/*/*-pine64-pinephone/ @craftyguy @milesalan @proycon @anjandev @StacyHarper @Arnavion @PsychoGame
|
||||
device/*/*-pine64-pinephonepro/ @PsychoGame
|
||||
device/*/*-pine64-rockpro64/ @PureTryOut
|
||||
device/*/*-purism-librem5/ @craftyguy @alistair23 @Newbyte
|
||||
device/*/*-qcom-msm8916/ @Minecrell @TravMurav
|
||||
device/*/*-qcom-msm8953/ @barni2000 @alikates @vipaoL @jiaxyga
|
||||
device/*/*-qcom-sdm670/ @flamingradian
|
||||
device/*/*-qcom-sdm845/ @sdm845-mainline
|
||||
device/*/*-qcom-sm7150/ @Adrian @jiaxyga @ungeskriptet
|
||||
device/*/*-qcom-sm8250/ @jianhua
|
||||
device/*/*-qcom/ @calebccff
|
||||
device/*/*-samsung-a3/ @Mis012 @TravMurav @Minecrell
|
||||
device/*/*-samsung-a5/ @Minecrell @minlexx
|
||||
device/*/*-samsung-a51/ @manoedinata
|
||||
device/*/*-samsung-e7/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/*-samsung-espresso10/ @MightyM17
|
||||
device/*/*-samsung-espresso7/ @MightyM17 @antoni.aloytorrens
|
||||
device/*/*-samsung-fortuna/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/*-samsung-fortunaltezt/ @bolilingmeng89006
|
||||
device/*/*-samsung-grandmax/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/*-samsung-gt510/ @TravMurav
|
||||
device/*/*-samsung-gt58/ @TravMurav
|
||||
device/*/*-samsung-j3ltetw/ @bolilingmeng89006
|
||||
device/*/*-samsung-j4lte/ @manoedinata
|
||||
device/*/*-samsung-j5/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/*-samsung-j5x/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/*-samsung-rossa/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/*-samsung-serranove/ @Minecrell
|
||||
device/*/*-tolino-shine2hd/ @akemnade
|
||||
device/*/*-videostrong-kii-pro/ @funderscore
|
||||
device/*/*-wileyfox-crackling/ @TravMurav @Minecrell
|
||||
device/*/*-xiaomi-beryllium/ @joelselvaraj
|
||||
device/*/*-xiaomi-daisy/ @joelselvaraj @alikates
|
||||
device/*/*-xiaomi-davinci/ @Adrian @ArianK16a
|
||||
device/*/*-xiaomi-elish/ @jianhua
|
||||
device/*/*-xiaomi-markw/ @vipaoL
|
||||
device/*/*-xiaomi-mido/ @barni2000
|
||||
device/*/*-xiaomi-scorpio/ @Tooniis
|
||||
device/*/*-xiaomi-surya/ @jiaxyga @ungeskriptet
|
||||
device/*/*-xiaomi-tissot/ @jiaxyga @barni2000
|
||||
device/*/*-xiaomi-vince/ @M0Rf30
|
||||
device/*/*-xiaomi-wt88047/ @Minecrell
|
||||
device/*/*-xiaomi-ysl/ @barni2000
|
||||
device/*/alsa-ucm-conf-cros/ @WeirdTreeThing
|
||||
device/*/alsa-ucm-conf-qcom-sdm670/ @flamingradian
|
||||
device/*/device-apple-n61/ @JustSoup321
|
||||
device/*/device-generic-x86_64/ @craftyguy @ollieparanoid
|
||||
device/*/device-google-nyan-big/ @jenneron
|
||||
device/*/device-google-nyan-blaze/ @jenneron
|
||||
device/*/device-google-peach-pi/ @jenneron
|
||||
device/*/device-google-peach-pit/ @jenneron
|
||||
device/*/device-google-sargo/ @flamingradian
|
||||
device/*/device-google-snow/ @jenneron
|
||||
device/*/device-huawei-plank/ @gtrxAC
|
||||
device/*/device-lg-judyln/ @Newbyte
|
||||
device/*/device-lg-judyp/ @jenneron
|
||||
device/*/device-microsoft-surface-rt/ @jenneron @jethrob
|
||||
device/*/device-nvidia-tegra-armv7/ @clamor-s @okias @mschwalm @nokun
|
||||
device/*/device-odroid-xu4/ @Grimler
|
||||
device/*/device-oneplus-enchilada/ @calebccff
|
||||
device/*/device-oneplus-fajita/ @calebccff
|
||||
device/*/device-postmarketos-trailblazer/ @calebccff
|
||||
device/*/device-qcom-msm8909/ @wonderfulShrineMaidenOfParadise
|
||||
device/*/device-qemu-aarch64/ @Minecrell @ollieparanoid
|
||||
device/*/device-qemu-amd64/ @Minecrell @ollieparanoid
|
||||
device/*/device-qemu-riscv64/ @Minecrell
|
||||
device/*/device-qualcomm-sdm845/ @calebccff
|
||||
device/*/device-raspberry-pi3/ @fossdd
|
||||
device/*/device-samsung-chagallwifi/ @Grimler
|
||||
device/*/device-samsung-coreprimevelte/ @legolivesmatter @balejk
|
||||
device/*/device-samsung-j5y17lte/ @andrisas
|
||||
device/*/device-samsung-klimtlte/ @Grimler
|
||||
device/*/device-samsung-lt01/ @knuxify
|
||||
device/*/device-samsung-m0/ @Newbyte
|
||||
device/*/device-samsung-manta/ @jenneron @alexmrqt
|
||||
device/*/device-shift-axolotl/ @amartinz @calebccff @dylanvanassche
|
||||
device/*/device-solidrun-cubox/ @longnoserob
|
||||
device/*/firmware-google-sargo/ @flamingradian
|
||||
device/*/firmware-google-veyron-brcm/ @jenneron
|
||||
device/*/firmware-motorola-osprey/ @Minecrell
|
||||
device/*/firmware-odroid-xu4/ @Grimler
|
||||
device/*/firmware-oneplus-sdm845/ @calebccff
|
||||
device/*/firmware-powervr-gx6250/ @jenneron
|
||||
device/*/kobo-epdc-extractor/ @akemnade
|
||||
device/*/linux-google-nyan/ @jenneron
|
||||
device/*/linux-google-veyron/ @jenneron
|
||||
device/*/linux-huawei-plank/ @gtrxAC
|
||||
device/*/linux-next/ @calebccff
|
||||
device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame
|
||||
device/*/linux-postmarketos-amlogic/ @funderscore @exkc
|
||||
device/*/linux-postmarketos-apple/ @JustSoup321
|
||||
device/*/linux-postmarketos-exynos4/ @Newbyte @Grimler @knuxify
|
||||
device/*/linux-postmarketos-exynos5/ @jenneron @Grimler
|
||||
device/*/linux-postmarketos-grate/ @clamor-s @jenneron @jethrob
|
||||
device/*/linux-postmarketos-imx-ereader/ @akemnade
|
||||
device/*/linux-postmarketos-marvell/ @longnoserob @exkc
|
||||
device/*/linux-postmarketos-mediatek-mt8173/ @jenneron @adamthiede
|
||||
device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft
|
||||
device/*/linux-postmarketos-omap/ @MightyM17 @Sicelo
|
||||
device/*/linux-postmarketos-qcom-laptop/ @craftyguy @calebccff
|
||||
device/*/linux-postmarketos-qcom-msm8939/ @Newbyte
|
||||
device/*/linux-postmarketos-qcom-msm8953/ @M0Rf30 @Ultra-azu @barni2000
|
||||
device/*/linux-postmarketos-qcom-msm8996/ @Tooniis
|
||||
device/*/linux-postmarketos-qcom-sc7180/ @jenneron
|
||||
device/*/linux-postmarketos-rockchip/ @QC8086
|
||||
device/*/linux-postmarketos-stericsson/ @Newbyte
|
||||
device/*/linux-samsung-chagallwifi/ @Grimler
|
||||
device/*/linux-samsung-coreprimevelte/ @legolivesmatter @balejk
|
||||
device/*/linux-samsung-j5y17lte/ @andrisas
|
||||
device/*/linux-samsung-klimtlte/ @Grimler
|
||||
device/*/oem-amd/ @craftyguy
|
||||
device/*/oem-intel/ @craftyguy
|
||||
device/*/oem-nvidia/ @craftyguy
|
||||
device/*/soc-mediatek-mt8183/ @jenneron
|
||||
device/*/soc-qcom-msm8953/ @barni2000
|
||||
device/*/soc-qcom-msm8996/ @Tooniis
|
||||
device/*/soc-qcom-sc7180/ @jenneron
|
||||
device/*/soc-rockchip-rk3399/ @jenneron
|
||||
device/*/soc-samsung-exynos4412/ @Newbyte
|
||||
device/*/u-boot-librem5/ @craftyguy @alistair23 @Newbyte
|
||||
device/*/u-boot-pinebookpro/ @QC8086
|
||||
device/*/u-boot-pinephone/ @Arnavion @PsychoGame
|
||||
device/*/wl1251-cal/ @Danct12
|
||||
main/postmarketos*gnome*/ @pabloyoyoista @Newbyte @fossdd
|
||||
main/postmarketos-initramfs/ @calebccff @craftyguy
|
||||
main/postmarketos-ui-i3wm/ @fossdd
|
||||
main/postmarketos-ui-phosh/ @pabloyoyoista @Newbyte @fossdd
|
||||
main/postmarketos-ui-plasma-bigscreen/ @PureTryOut
|
||||
main/postmarketos-ui-plasma-desktop/ @PureTryOut
|
||||
main/postmarketos-ui-plasma-mobile/ @PureTryOut
|
||||
main/shutdown-clear-rtc-wakealarm/ @Arnavion
|
||||
main/ttyescape/ @calebccff
|
||||
@@ -42,19 +42,6 @@ commit title can opt to use the following format:
|
||||
|
||||
manufacturer-codename: description of change
|
||||
|
||||
### Changes to packages inside of the systemd directory
|
||||
|
||||
We also shorten the prefixes for packages in `extra-repos/systemd`.
|
||||
When the `systemd` package itself gets changed, use `systemd: ` as
|
||||
prefix. For example:
|
||||
|
||||
systemd: add triggers for reloading/restarting services
|
||||
|
||||
When another package inside the systemd directory gets changed, use
|
||||
`systemd/$pkgname: ` as prefix. For example:
|
||||
|
||||
systemd/cups: restart on upgrade
|
||||
|
||||
### Moving devices between categories
|
||||
|
||||
As we do not include directory prefixes in device-related commits,
|
||||
|
||||
+1
-7
@@ -8,14 +8,8 @@ branch_pmaports=master
|
||||
branch_aports=master
|
||||
mirrordir_alpine=edge
|
||||
|
||||
[v25.06]
|
||||
description=Latest release / Recommended for best stability
|
||||
branch_pmaports=v25.06
|
||||
branch_aports=3.22-stable
|
||||
mirrordir_alpine=v3.22
|
||||
|
||||
[v24.12]
|
||||
description=Old release (unsupported)
|
||||
description=Latest release / Recommended for best stability
|
||||
branch_pmaports=v24.12
|
||||
branch_aports=3.21-stable
|
||||
mirrordir_alpine=v3.21
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
cross-gcc-tests:
|
||||
extends: .package-test
|
||||
before_script:
|
||||
- wget "https://gitlab.postmarketos.org/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
|
||||
- sh ./install_pmbootstrap.sh
|
||||
script:
|
||||
- su pmos -c "pmbootstrap --details-to-stdout build gcc-aarch64"
|
||||
- su pmos -c "pmbootstrap --details-to-stdout build --arch=aarch64 hello-world"
|
||||
- su pmos -c "pmbootstrap --details-to-stdout build --arch=aarch64 iskey"
|
||||
- su pmos -c "pmbootstrap --details-to-stdout build --arch=aarch64 pbsplash"
|
||||
- su pmos -c "pmbootstrap --details-to-stdout build --arch=aarch64 gcc-x86_64"
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
changes:
|
||||
- cross/gcc-x86_64/APKBUILD
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-aarch64
|
||||
pkgver=1.37.0
|
||||
pkgrel=22
|
||||
pkgrel=14
|
||||
|
||||
_arch="aarch64"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
9ab4cc4a70e7fb124c09860cc783ecfdda13af0b1acc726704dbfd0af5c5302b3cfdbee55cacaa4deb5a367afab3e67d9dea54fcb1fd1c5de77a12cc7cf862da busybox-static-1.37.0-r22-aarch64-edge.apk
|
||||
8f1f521eceb24a5f66e18e022b1151e96b40378051aaed911dc22e68dbffc5998c8f2bac3935423371c7e707f8931e97873c91c39d56dc2e34292567b3caceaf busybox-static-1.37.0-r14-aarch64-edge.apk
|
||||
"
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-armhf
|
||||
pkgver=1.37.0
|
||||
pkgrel=22
|
||||
pkgrel=14
|
||||
|
||||
_arch="armhf"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
a625d518a850c69079ae16438deffba87c06ab9ac40f1e63b8f02f04b156f5ddb899aa7687b16affac42744f80acdd07e160abeb5b4a5ecd2327f20c1f4933fc busybox-static-1.37.0-r22-armhf-edge.apk
|
||||
ce7dfd41a149faed98ae5ae08695223b57e8104a47c9c4c0e956a8c7cbd7fbc6b53b247f2c0f0633d72aa0aba8688f6ecfdd9784722b655f3c29dc1a2557f3e1 busybox-static-1.37.0-r14-armhf-edge.apk
|
||||
"
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-armv7
|
||||
pkgver=1.37.0
|
||||
pkgrel=22
|
||||
pkgrel=14
|
||||
|
||||
_arch="armv7"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
875b7267c85f551338d0bf6123421cfa374ad6cfbdda596a580e426d1e99bc45a127d92191dcd84b0fc2e851e6e73949f5281307a2f4948345d22ef7a5a856e4 busybox-static-1.37.0-r22-armv7-edge.apk
|
||||
2f7003d0de894299a0260efd97bddfabd8d14d0e4b624445a77367036ad33c7ad65a85ee758969e671599ded5ee5674bda755c570ca4d9e95bba9c02b5788b8f busybox-static-1.37.0-r14-armv7-edge.apk
|
||||
"
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
pkgname=ccache-cross-symlinks
|
||||
pkgver=3
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
pkgdesc="Enable ccache for cross-compilers with symlinks"
|
||||
url="https://ccache.samba.org/"
|
||||
arch="noarch"
|
||||
@@ -15,7 +15,7 @@ options="!check"
|
||||
|
||||
package() {
|
||||
# Keep in sync with pmb.config.build_device_architectures
|
||||
local _archs="armhf armv7 aarch64 x86_64 x86 riscv64 ppc64le"
|
||||
local _archs="armhf armv7 aarch64 x86_64 x86 riscv64"
|
||||
|
||||
local _bins="c++ cc cpp g++ gcc clang clang++"
|
||||
mkdir -p "$pkgdir/usr/lib/ccache/bin"
|
||||
|
||||
+14
-60
@@ -1,5 +1,5 @@
|
||||
# Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
|
||||
# https://docs.postmarketos.org/pmbootstrap/cross_compiling.html
|
||||
# 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
|
||||
@@ -12,33 +12,26 @@
|
||||
# -> /native/usr/bin/rustc --target=armv6-alpine-linux-musleabihf ...
|
||||
#
|
||||
# When building packages in the armhf chroot, PATH will get prepended with
|
||||
# "/native/usr/lib/crossdirect/armhf". The end game is of course invoking
|
||||
# programs such as cross compilers and archivers from the native chroot,
|
||||
# running at native speed, whenever they get called from the foreign arch
|
||||
# chroot. See crossdirect.c for implementation details of the C version (llvm,
|
||||
# fakeroot, rpath). The rust version and redirect for archivers are implemented
|
||||
# as simple shell wrappers.
|
||||
# "/native/usr/lib/crossdirect/armhf". The end game is of course invoking the
|
||||
# cross compiler from the native chroot, running at native speed, whenever
|
||||
# calling the compiler from the foreign arch chroot. See crossdirect.c for
|
||||
# implementation details of the C version (llvm, fakeroot, rpath). The rust
|
||||
# version is implemented as simple shell wrappers.
|
||||
|
||||
pkgname=crossdirect
|
||||
pkgver=5.3.0
|
||||
pkgver=5.2.0
|
||||
pkgrel=1
|
||||
pkgdesc="Wrappers to launch native programs (e.g. cross compilers) in foreign chroots"
|
||||
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
|
||||
exec_native.sh
|
||||
rust-qemu-linker.sh
|
||||
rustc.sh
|
||||
"
|
||||
source="cargo.sh crossdirect.c rustc.sh rust-qemu-linker.sh"
|
||||
|
||||
build() {
|
||||
cd "$srcdir"
|
||||
# Architectures and binaries
|
||||
_archs="x86_64 armhf armv7 aarch64 ppc64le riscv64"
|
||||
_archs="x86_64 armhf armv7 aarch64 riscv64"
|
||||
for _arch in $_archs; do
|
||||
[ "$_arch" == "$CARCH" ] && continue
|
||||
_hostspec="$(arch_to_hostspec $_arch)"
|
||||
@@ -55,37 +48,8 @@ build() {
|
||||
|
||||
package() {
|
||||
# Architectures and binaries
|
||||
_archs="
|
||||
aarch64
|
||||
armhf
|
||||
armv7
|
||||
ppc64le
|
||||
riscv64
|
||||
x86_64
|
||||
"
|
||||
_bin_compilers="
|
||||
c++
|
||||
cc
|
||||
clang
|
||||
clang++
|
||||
cpp
|
||||
g++
|
||||
gcc
|
||||
"
|
||||
_bin_archivers="
|
||||
bzip2
|
||||
gunzip
|
||||
gzip
|
||||
lzip
|
||||
lzma
|
||||
lzop
|
||||
pigz
|
||||
unlzma
|
||||
unpigz
|
||||
unxz
|
||||
unzip
|
||||
xz
|
||||
"
|
||||
_archs="x86_64 armhf armv7 aarch64 riscv64"
|
||||
_bins="c++ cc cpp g++ gcc clang clang++"
|
||||
|
||||
# Rust wrappers
|
||||
install -Dm755 "$srcdir/rust-qemu-linker.sh" \
|
||||
@@ -93,9 +57,6 @@ package() {
|
||||
install -Dm755 "$srcdir/cargo.sh" "$pkgdir/usr/lib/crossdirect/cargo.sh"
|
||||
install -Dm755 "$srcdir/rustc.sh" "$pkgdir/usr/lib/crossdirect/rustc.sh"
|
||||
|
||||
# For archivers
|
||||
install -Dm755 "$srcdir/exec_native.sh" -t "$pkgdir/usr/lib/crossdirect/"
|
||||
|
||||
# Iterate over architectures
|
||||
for _arch in $_archs; do
|
||||
[ "$_arch" == "$CARCH" ] && continue
|
||||
@@ -109,17 +70,11 @@ package() {
|
||||
cp "$srcdir/crossdirect-$_arch" "./"
|
||||
|
||||
# GCC: create compiler symlinks
|
||||
for _bin in $_bin_compilers; do
|
||||
for _bin in $_bins; do
|
||||
ln -s "crossdirect-$_arch" "$_bin"
|
||||
ln -s "crossdirect-$_arch" "$_hostspec-$_bin"
|
||||
done
|
||||
|
||||
# Archivers
|
||||
for _bin in $_bin_archivers; do
|
||||
ln -s ../exec_native.sh "$_bin"
|
||||
done
|
||||
|
||||
# Rust
|
||||
ln -s ../cargo.sh cargo
|
||||
ln -s ../rustc.sh rustc
|
||||
done
|
||||
@@ -128,7 +83,6 @@ package() {
|
||||
sha512sums="
|
||||
0f4b48f250425dc57f63955fc8b38477d23db793bee367c3fbe03c3d2a559ba576434d07518310db4cae9d90d501af4051b80038b10fae94b980e537fc9374ad cargo.sh
|
||||
b2e602b7fc95ed403d29f0d754879d5f773c39ee33e726bb10cff17b3c088406dac84f2ca6d8ad563c64370007d98af805d6ee9cd4a06fe3d4c61c0cb90c5c0c crossdirect.c
|
||||
a87d91b6e3286ce29fb1f487954e7154f282194691a1bf19b4cd80cca07a9c36aa96306883b1a6671ffbc2b503575a8c9484dccde8c55431845056c6f377bec5 exec_native.sh
|
||||
ea9bf8db3810d03d0a7395057f3d6e57f7127d87c55deaedc171c255288f5f3cc6fbcc680a5a1b92786cf573875d5dc22521173799fe2639acc97d0715ff905b rust-qemu-linker.sh
|
||||
de2aa6929bbff5db9132673e667f4525b333d062cb1f7a0597dd924de9e5c7215a9f8e2e6263b6fb5ace06f2c4b64f4ebfd0ede9b78add07c2cd08ec8613e98f rustc.sh
|
||||
ea9bf8db3810d03d0a7395057f3d6e57f7127d87c55deaedc171c255288f5f3cc6fbcc680a5a1b92786cf573875d5dc22521173799fe2639acc97d0715ff905b rust-qemu-linker.sh
|
||||
"
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
# Execute the binary from the native chroot if it is installed there. This is
|
||||
# done for archiver tools such as unxz, so they don't need to go through QEMU.
|
||||
|
||||
# Try /native first, then the foreign arch paths. Never try
|
||||
# /native/usr/lib/crossdirect as this would result in a loop.
|
||||
UNWRAPPED_PATH="/native/usr/bin:/native/usr/sbin:/native/sbin:/native/bin:/usr/bin:/usr/sbin:/sbin:/bin"
|
||||
|
||||
BASENAME="$(basename "$0")"
|
||||
UNWRAPPED_BIN="$(PATH="$UNWRAPPED_PATH" command -v "$BASENAME")"
|
||||
|
||||
case "$UNWRAPPED_BIN" in
|
||||
/native/*)
|
||||
export LD_LIBRARY_PATH="/native/usr/lib:/native/lib"
|
||||
export PATH="$UNWRAPPED_PATH"
|
||||
;;
|
||||
esac
|
||||
|
||||
exec "$UNWRAPPED_BIN" "$@"
|
||||
@@ -1,14 +1,14 @@
|
||||
From 94cf7d2b3514ed3a4401861a519ead450e022afc Mon Sep 17 00:00:00 2001
|
||||
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] posix_memalign
|
||||
Subject: [PATCH 01/35] posix_memalign
|
||||
|
||||
---
|
||||
gcc/config/i386/pmm_malloc.h | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
|
||||
index d1d79a32fc9..069c3bb8324 100644
|
||||
index 3527283693b..c4071b64b53 100644
|
||||
--- a/gcc/config/i386/pmm_malloc.h
|
||||
+++ b/gcc/config/i386/pmm_malloc.h
|
||||
@@ -27,12 +27,13 @@
|
||||
@@ -38,5 +38,5 @@ index d1d79a32fc9..069c3bb8324 100644
|
||||
else
|
||||
return NULL;
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0d5e04099a3d2609105719f7396a4ff941b873b6 Mon Sep 17 00:00:00 2001
|
||||
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 23 Jan 2025 17:12:51 -0800
|
||||
Subject: [PATCH] gcc: poison-system-directories
|
||||
Date: Fri, 29 Mar 2013 08:59:00 +0400
|
||||
Subject: [PATCH 02/35] 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
|
||||
@@ -11,25 +11,25 @@ aborted.
|
||||
Instead, we add the two missing items to the current scan. If the user
|
||||
wants this to be a failure, they can add "-Werror=poison-system-directories".
|
||||
|
||||
Upstream-Status: Inappropriate [OE configuration]
|
||||
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
||||
Signed-off-by: sunil dora <sunilkumar.dora@windriver.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
gcc/common.opt | 4 ++++
|
||||
gcc/config.in | 10 ++++++++++
|
||||
gcc/configure | 19 +++++++++++++++++++
|
||||
gcc/configure.ac | 16 ++++++++++++++++
|
||||
gcc/config.in | 6 ++++++
|
||||
gcc/configure | 16 ++++++++++++++++
|
||||
gcc/configure.ac | 10 ++++++++++
|
||||
gcc/doc/invoke.texi | 9 +++++++++
|
||||
gcc/gcc.cc | 12 ++++++++++--
|
||||
gcc/incpath.cc | 25 +++++++++++++++++++++++++
|
||||
7 files changed, 93 insertions(+), 2 deletions(-)
|
||||
gcc/gcc.cc | 2 ++
|
||||
gcc/incpath.cc | 21 +++++++++++++++++++++
|
||||
7 files changed, 68 insertions(+)
|
||||
|
||||
diff --git a/gcc/common.opt b/gcc/common.opt
|
||||
index e3fa0dacec4..bea1adc0940 100644
|
||||
index 862c474d3c8..64c4277c991 100644
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -729,6 +729,10 @@ Wreturn-local-addr
|
||||
@@ -711,6 +711,10 @@ Wreturn-local-addr
|
||||
Common Var(warn_return_local_addr) Init(1) Warning
|
||||
Warn about returning a pointer/reference to a local or temporary variable.
|
||||
|
||||
@@ -41,10 +41,10 @@ index e3fa0dacec4..bea1adc0940 100644
|
||||
Common Var(warn_shadow) Warning
|
||||
Warn when one variable shadows another. Same as -Wshadow=global.
|
||||
diff --git a/gcc/config.in b/gcc/config.in
|
||||
index a79c51adb2b..8a531ed591c 100644
|
||||
index 4cad077bfbe..0679fbbf4c6 100644
|
||||
--- a/gcc/config.in
|
||||
+++ b/gcc/config.in
|
||||
@@ -249,6 +249,16 @@
|
||||
@@ -236,6 +236,12 @@
|
||||
#endif
|
||||
|
||||
|
||||
@@ -52,28 +52,24 @@ index a79c51adb2b..8a531ed591c 100644
|
||||
+#ifndef USED_FOR_TARGET
|
||||
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
|
||||
+#endif
|
||||
+/* Define to warn for use of native system header directories */
|
||||
+#ifndef USED_FOR_TARGET
|
||||
+#undef POISON_BY_DEFAULT
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/* Define if you want all operations on RTL (the basic data structure of the
|
||||
optimizer and back end) to be checked for dynamic type safety at runtime.
|
||||
This is quite expensive. */
|
||||
diff --git a/gcc/configure b/gcc/configure
|
||||
index 16965953f05..0f4a5d52c30 100755
|
||||
index c7b26d1927d..8c46369f73f 100755
|
||||
--- a/gcc/configure
|
||||
+++ b/gcc/configure
|
||||
@@ -1051,6 +1051,7 @@ enable_maintainer_mode
|
||||
@@ -1026,6 +1026,7 @@ enable_maintainer_mode
|
||||
enable_link_mutex
|
||||
enable_link_serialization
|
||||
enable_version_specific_runtime_libs
|
||||
+enable_poison_system_directories
|
||||
enable_plugin
|
||||
enable_host_shared
|
||||
enable_host_pie
|
||||
@@ -1828,6 +1829,8 @@ Optional Features:
|
||||
enable_libquadmath_support
|
||||
@@ -1788,6 +1789,8 @@ Optional Features:
|
||||
--enable-version-specific-runtime-libs
|
||||
specify that runtime libraries should be installed
|
||||
in a compiler-specific directory
|
||||
@@ -81,8 +77,8 @@ index 16965953f05..0f4a5d52c30 100755
|
||||
+ warn for use of native system header directories
|
||||
--enable-plugin enable plugin support
|
||||
--enable-host-shared build host code as shared libraries
|
||||
--enable-host-pie build host code as PIE
|
||||
@@ -34027,6 +34030,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
|
||||
--disable-libquadmath-support
|
||||
@@ -31753,6 +31756,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
|
||||
fi
|
||||
|
||||
|
||||
@@ -93,12 +89,9 @@ index 16965953f05..0f4a5d52c30 100755
|
||||
+ enable_poison_system_directories=no
|
||||
+fi
|
||||
+
|
||||
+if test "x${enable_poison_system_directories}" != "xno"; then
|
||||
+if test "x${enable_poison_system_directories}" = "xyes"; then
|
||||
+
|
||||
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
|
||||
+if test "$enable_poison_system_directories" = "error"; then
|
||||
+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
|
||||
+fi
|
||||
+
|
||||
+fi
|
||||
+
|
||||
@@ -106,47 +99,41 @@ index 16965953f05..0f4a5d52c30 100755
|
||||
|
||||
|
||||
diff --git a/gcc/configure.ac b/gcc/configure.ac
|
||||
index 9f67e62950a..b0e3615e5aa 100644
|
||||
index 09082e8ccae..5504bf6eb01 100644
|
||||
--- a/gcc/configure.ac
|
||||
+++ b/gcc/configure.ac
|
||||
@@ -7502,6 +7502,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
|
||||
@@ -7292,6 +7292,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
|
||||
[specify that runtime libraries should be
|
||||
installed in a compiler-specific directory])])
|
||||
|
||||
+AC_ARG_ENABLE([poison-system-directories],
|
||||
+ AS_HELP_STRING([--enable-poison-system-directories],
|
||||
+ [warn for use of native system header directories (no/yes/error)]),,
|
||||
+ [warn for use of native system header directories]),,
|
||||
+ [enable_poison_system_directories=no])
|
||||
+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
|
||||
+if test "x${enable_poison_system_directories}" != "xno"; then
|
||||
+ AC_MSG_NOTICE([poisoned directories enabled])
|
||||
+if test "x${enable_poison_system_directories}" = "xyes"; then
|
||||
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
|
||||
+ [1],
|
||||
+ [Define to warn for use of native system header directories])
|
||||
+ if test $enable_poison_system_directories = "error"; then
|
||||
+ AC_MSG_NOTICE([poisoned directories are fatal])
|
||||
+ AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# Substitute configuration variables
|
||||
AC_SUBST(subdirs)
|
||||
AC_SUBST(srcdir)
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 72009c33cd0..29aea724731 100644
|
||||
index af0e5933fdb..b6731a4673c 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -405,6 +405,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
@@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
|
||||
-Wparentheses -Wno-pedantic-ms-format
|
||||
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
|
||||
+-Wno-poison-system-directories
|
||||
-Wno-pragmas -Wno-pragma-once-outside-header -Wno-prio-ctor-dtor
|
||||
-Wno-psabi
|
||||
-Wredundant-decls -Wrestrict
|
||||
@@ -10727,6 +10728,14 @@ an error. @option{Wint-to-pointer-cast} is enabled by default.
|
||||
Suppress warnings from casts from a pointer to an integer type of a
|
||||
different size.
|
||||
-Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls
|
||||
-Wrestrict -Wno-return-local-addr -Wreturn-type
|
||||
-Wno-scalar-storage-order -Wsequence-point
|
||||
@@ -8426,6 +8427,14 @@ made up of data only and thus requires no special treatment. But, for
|
||||
most targets, it is made up of code and thus requires the stack to be
|
||||
made executable in order for the program to work properly.
|
||||
|
||||
+@opindex Wno-poison-system-directories
|
||||
+@item -Wno-poison-system-directories
|
||||
@@ -156,28 +143,15 @@ index 72009c33cd0..29aea724731 100644
|
||||
+directories contain the correct headers and libraries for the target
|
||||
+system rather than the host.
|
||||
+
|
||||
@opindex Winvalid-pch
|
||||
@opindex Wno-invalid-pch
|
||||
@item -Winvalid-pch
|
||||
@opindex Wfloat-equal
|
||||
@opindex Wno-float-equal
|
||||
@item -Wfloat-equal
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 4fd87f2c4a1..79d4920a047 100644
|
||||
index 16bb07f2cdc..33b56e721d2 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -909,6 +909,12 @@ proper position among the other output files. */
|
||||
#define ASM_MAP ""
|
||||
#endif
|
||||
|
||||
+#ifdef POISON_BY_DEFAULT
|
||||
+#define POISON_IS_ERROR " -Werror=poison-system-directories"
|
||||
+#else
|
||||
+#define POISON_IS_ERROR
|
||||
+#endif
|
||||
+
|
||||
/* Assembler options for compressed debug sections. */
|
||||
#if HAVE_LD_COMPRESS_DEBUG == 0
|
||||
/* Reject if the linker cannot write compressed debug sections. */
|
||||
@@ -1166,6 +1172,8 @@ proper position among the other output files. */
|
||||
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
|
||||
@@ -1177,6 +1187,8 @@ proper position among the other output files. */
|
||||
"-z now " \
|
||||
"%X %{o*} %{e*} %{N} %{n} %{r}\
|
||||
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
|
||||
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
|
||||
@@ -185,26 +159,8 @@ index 4fd87f2c4a1..79d4920a047 100644
|
||||
%{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
|
||||
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
|
||||
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
|
||||
@@ -1268,7 +1276,7 @@ static const char *cpp_options =
|
||||
"%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
|
||||
%{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
|
||||
%{!fno-working-directory:-fworking-directory}}} %{O*}\
|
||||
- %{undef} %{save-temps*:-fpch-preprocess}";
|
||||
+ %{undef} %{save-temps*:-fpch-preprocess}" POISON_IS_ERROR;
|
||||
|
||||
/* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
|
||||
|
||||
@@ -1297,7 +1305,7 @@ static const char *cc1_options =
|
||||
%{coverage:-fprofile-arcs -ftest-coverage}\
|
||||
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
|
||||
%{!fprofile-update=single:\
|
||||
- %{pthread:-fprofile-update=prefer-atomic}}}";
|
||||
+ %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR;
|
||||
|
||||
static const char *asm_options =
|
||||
"%{-target-help:%:print-asm-header()} "
|
||||
diff --git a/gcc/incpath.cc b/gcc/incpath.cc
|
||||
index c1bbfd3872a..2cdbebc4c50 100644
|
||||
index 4d44321183f..0f3f071b44c 100644
|
||||
--- a/gcc/incpath.cc
|
||||
+++ b/gcc/incpath.cc
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -215,20 +171,9 @@ index c1bbfd3872a..2cdbebc4c50 100644
|
||||
|
||||
/* Microsoft Windows does not natively support inodes.
|
||||
VMS has non-numeric inodes. */
|
||||
@@ -273,6 +274,10 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
|
||||
cur->name, xstrerror (errno));
|
||||
reason = REASON_NOENT;
|
||||
}
|
||||
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
|
||||
+ pcur = &cur->next;
|
||||
+ continue;
|
||||
+#endif
|
||||
}
|
||||
else if (!S_ISDIR (st.st_mode))
|
||||
cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0,
|
||||
@@ -411,6 +416,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
|
||||
fprintf (stderr, _("End of #embed search list.\n"));
|
||||
@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
|
||||
}
|
||||
fprintf (stderr, _("End of search list.\n"));
|
||||
}
|
||||
+
|
||||
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
|
||||
@@ -237,22 +182,22 @@ index c1bbfd3872a..2cdbebc4c50 100644
|
||||
+ struct cpp_dir *p;
|
||||
+
|
||||
+ for (p = heads[INC_QUOTE]; p; p = p->next)
|
||||
+ {
|
||||
+ if ((!strncmp (p->name, "/usr/include", 12))
|
||||
+ || (!strncmp (p->name, "/usr/local/include", 18))
|
||||
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
|
||||
+ || (!strncmp (p->name, "/sw/include", 11))
|
||||
+ || (!strncmp (p->name, "/opt/include", 12)))
|
||||
+ warning (OPT_Wpoison_system_directories,
|
||||
+ "include location \"%s\" is unsafe for "
|
||||
+ "cross-compilation",
|
||||
+ p->name);
|
||||
+ }
|
||||
+ {
|
||||
+ if ((!strncmp (p->name, "/usr/include", 12))
|
||||
+ || (!strncmp (p->name, "/usr/local/include", 18))
|
||||
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
|
||||
+ || (!strncmp (p->name, "/sw/include", 11))
|
||||
+ || (!strncmp (p->name, "/opt/include", 12)))
|
||||
+ warning (OPT_Wpoison_system_directories,
|
||||
+ "include location \"%s\" is unsafe for "
|
||||
+ "cross-compilation",
|
||||
+ p->name);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Use given -I paths for #include "..." but not #include <...>, and
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 90e8697dd88fd99ce2cf8739e95494853005377e Mon Sep 17 00:00:00 2001
|
||||
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] specs: turn on -Wl,-z,now by default
|
||||
Subject: [PATCH 03/35] 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.
|
||||
@@ -14,10 +14,10 @@ now by default.
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 29aea724731..6fb3ab70cc7 100644
|
||||
index b6731a4673c..f393c7846c6 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -19477,6 +19477,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
|
||||
@@ -17961,6 +17961,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
|
||||
linker. When using the GNU linker, you can also get the same effect with
|
||||
@option{-Wl,-Map=output.map}.
|
||||
|
||||
@@ -28,10 +28,10 @@ index 29aea724731..6fb3ab70cc7 100644
|
||||
@item -u @var{symbol}
|
||||
Pretend the symbol @var{symbol} is undefined, to force linking of
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 79d4920a047..74a356fdf5e 100644
|
||||
index 33b56e721d2..f82fae23c22 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1170,6 +1170,7 @@ proper position among the other output files. */
|
||||
@@ -1144,6 +1144,7 @@ proper position among the other output files. */
|
||||
"%{flto|flto=*:%<fcompare-debug*} \
|
||||
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
|
||||
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
|
||||
@@ -40,5 +40,5 @@ index 79d4920a047..74a356fdf5e 100644
|
||||
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
|
||||
%{Wno-poison-system-directories:--no-poison-system-directories} \
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
From 17c9cf9272077bc7ac784daffd4c68ba1ce67a0d Mon Sep 17 00:00:00 2001
|
||||
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] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
|
||||
ObjC++, if the optimization level is > 0
|
||||
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
ObjC, ObjC++, if the optimization level is > 0
|
||||
|
||||
---
|
||||
gcc/c-family/c-cppbuiltin.cc | 4 ++++
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
|
||||
index 4589ee4a3a6..9edf095384c 100644
|
||||
index 5d64625fcd7..868d69506e4 100644
|
||||
--- a/gcc/c-family/c-cppbuiltin.cc
|
||||
+++ b/gcc/c-family/c-cppbuiltin.cc
|
||||
@@ -1581,6 +1581,10 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||
@@ -1546,6 +1546,10 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
|
||||
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
|
||||
|
||||
@@ -25,10 +25,10 @@ index 4589ee4a3a6..9edf095384c 100644
|
||||
if (flag_gnu89_inline)
|
||||
cpp_define (pfile, "__GNUC_GNU_INLINE__");
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 6fb3ab70cc7..799ce073dbf 100644
|
||||
index f393c7846c6..ef3c14a189e 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -12840,6 +12840,12 @@ also turns on the following optimization flags:
|
||||
@@ -11868,6 +11868,12 @@ also turns on the following optimization flags:
|
||||
Please note the warning under @option{-fgcse} about
|
||||
invoking @option{-O2} on programs that use computed gotos.
|
||||
|
||||
@@ -42,5 +42,5 @@ index 6fb3ab70cc7..799ce073dbf 100644
|
||||
@item -O3
|
||||
Optimize yet more. @option{-O3} turns on all optimizations specified
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
From a59da582e83071de0566274d912ca6f05f4b75d0 Mon Sep 17 00:00:00 2001
|
||||
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] On linux targets pass --as-needed by default to the linker,
|
||||
but always link the sanitizer libraries with --no-as-needed.
|
||||
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
|
||||
linker, but always link the sanitizer libraries with --no-as-needed.
|
||||
|
||||
---
|
||||
gcc/config/aarch64/aarch64-linux.h | 1 +
|
||||
@@ -22,10 +22,10 @@ Subject: [PATCH] On linux targets pass --as-needed by default to the linker,
|
||||
14 files changed, 36 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
|
||||
index 116bb4e69f3..daf99f8dce9 100644
|
||||
index 4277f03da2a..b131983a546 100644
|
||||
--- a/gcc/config/aarch64/aarch64-linux.h
|
||||
+++ b/gcc/config/aarch64/aarch64-linux.h
|
||||
@@ -39,6 +39,7 @@
|
||||
@@ -35,6 +35,7 @@
|
||||
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||
|
||||
#define LINUX_TARGET_LINK_SPEC "%{h*} \
|
||||
@@ -34,7 +34,7 @@ index 116bb4e69f3..daf99f8dce9 100644
|
||||
%{shared:-shared} \
|
||||
%{symbolic:-Bsymbolic} \
|
||||
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
|
||||
index 3fd3b831166..0b4c2dccebe 100644
|
||||
index 03f783f2ad1..d946e700dda 100644
|
||||
--- a/gcc/config/alpha/linux-elf.h
|
||||
+++ b/gcc/config/alpha/linux-elf.h
|
||||
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -47,7 +47,7 @@ index 3fd3b831166..0b4c2dccebe 100644
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
|
||||
index d4d389e2aa8..adccc0b11c2 100644
|
||||
index 7b7b7cbbe14..49c050c6f2c 100644
|
||||
--- a/gcc/config/arm/linux-elf.h
|
||||
+++ b/gcc/config/arm/linux-elf.h
|
||||
@@ -70,6 +70,7 @@
|
||||
@@ -59,7 +59,7 @@ index d4d389e2aa8..adccc0b11c2 100644
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
|
||||
index 4c4e31efa39..3c17ac6eade 100644
|
||||
index eda8010b133..b26b17f2f2a 100644
|
||||
--- a/gcc/config/gnu-user.h
|
||||
+++ b/gcc/config/gnu-user.h
|
||||
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -87,7 +87,7 @@ index 4c4e31efa39..3c17ac6eade 100644
|
||||
|
||||
#undef TARGET_F951_OPTIONS
|
||||
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
|
||||
index 7abfda53049..ceb8f855b7d 100644
|
||||
index a79b739089d..e0752673dff 100644
|
||||
--- a/gcc/config/i386/gnu-user.h
|
||||
+++ b/gcc/config/i386/gnu-user.h
|
||||
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -100,7 +100,7 @@ index 7abfda53049..ceb8f855b7d 100644
|
||||
%{!static: \
|
||||
%{!static-pie: \
|
||||
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
|
||||
index abe714711bf..3ca128a79f5 100644
|
||||
index 3b63b99acf6..759bf0db86f 100644
|
||||
--- a/gcc/config/i386/gnu-user64.h
|
||||
+++ b/gcc/config/i386/gnu-user64.h
|
||||
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -112,7 +112,7 @@ index abe714711bf..3ca128a79f5 100644
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
|
||||
index a2494c214c4..e1a5d530cdf 100644
|
||||
index 5dfd428aa17..02656dad7fc 100644
|
||||
--- a/gcc/config/ia64/linux.h
|
||||
+++ b/gcc/config/ia64/linux.h
|
||||
@@ -58,7 +58,7 @@ do { \
|
||||
@@ -125,7 +125,7 @@ index a2494c214c4..e1a5d530cdf 100644
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
|
||||
index 5a82508c113..6eee7cdc603 100644
|
||||
index a4e5380b589..3cc61bce69f 100644
|
||||
--- a/gcc/config/mips/gnu-user.h
|
||||
+++ b/gcc/config/mips/gnu-user.h
|
||||
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -137,7 +137,7 @@ index 5a82508c113..6eee7cdc603 100644
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
|
||||
index 9060c940a44..282c77b6a7b 100644
|
||||
index 3e625e0f867..f8c2c351e5a 100644
|
||||
--- a/gcc/config/riscv/linux.h
|
||||
+++ b/gcc/config/riscv/linux.h
|
||||
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -147,12 +147,12 @@ index 9060c940a44..282c77b6a7b 100644
|
||||
+-as-needed \
|
||||
-melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv" LD_EMUL_SUFFIX " \
|
||||
%{mno-relax:--no-relax} \
|
||||
-X \
|
||||
%{mbig-endian:-EB} \
|
||||
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
|
||||
index 0316d8cb65d..139e1b6796c 100644
|
||||
index 9e457033d11..08016bf224d 100644
|
||||
--- a/gcc/config/rs6000/linux64.h
|
||||
+++ b/gcc/config/rs6000/linux64.h
|
||||
@@ -378,13 +378,13 @@ extern int dot_symbols;
|
||||
@@ -377,13 +377,13 @@ extern int dot_symbols;
|
||||
" -m elf64ppc")
|
||||
#endif
|
||||
|
||||
@@ -169,10 +169,10 @@ index 0316d8cb65d..139e1b6796c 100644
|
||||
%{rdynamic:-export-dynamic} \
|
||||
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
|
||||
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
|
||||
index afb5c6ad867..b64638fb25b 100644
|
||||
index ae932fc22f0..c8ff0c6dc8e 100644
|
||||
--- a/gcc/config/rs6000/sysv4.h
|
||||
+++ b/gcc/config/rs6000/sysv4.h
|
||||
@@ -781,7 +781,7 @@ GNU_USER_TARGET_CC1_SPEC
|
||||
@@ -780,7 +780,7 @@ GNU_USER_TARGET_CC1_SPEC
|
||||
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
|
||||
#endif
|
||||
|
||||
@@ -182,7 +182,7 @@ index afb5c6ad867..b64638fb25b 100644
|
||||
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
|
||||
|
||||
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
|
||||
index 2c3bca5dfcb..b90661247a4 100644
|
||||
index 02aa1edaff8..64df5801134 100644
|
||||
--- a/gcc/config/s390/linux.h
|
||||
+++ b/gcc/config/s390/linux.h
|
||||
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -195,7 +195,7 @@ index 2c3bca5dfcb..b90661247a4 100644
|
||||
%{!shared: \
|
||||
%{static:-static} \
|
||||
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
|
||||
index 6d928846895..3cc05bb7240 100644
|
||||
index 0e33b3cac2c..c2f44546e62 100644
|
||||
--- a/gcc/config/sparc/linux.h
|
||||
+++ b/gcc/config/sparc/linux.h
|
||||
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
|
||||
@@ -208,10 +208,10 @@ index 6d928846895..3cc05bb7240 100644
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 74a356fdf5e..fc9c7d15b04 100644
|
||||
index f82fae23c22..da6417dd0d1 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -774,8 +774,11 @@ proper position among the other output files. */
|
||||
@@ -754,8 +754,11 @@ proper position among the other output files. */
|
||||
#ifdef LIBASAN_EARLY_SPEC
|
||||
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
@@ -225,7 +225,7 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
STATIC_LIBASAN_LIBS
|
||||
#else
|
||||
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
|
||||
@@ -810,8 +813,11 @@ proper position among the other output files. */
|
||||
@@ -790,8 +793,11 @@ proper position among the other output files. */
|
||||
#ifdef LIBTSAN_EARLY_SPEC
|
||||
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
@@ -239,7 +239,7 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
STATIC_LIBTSAN_LIBS
|
||||
#else
|
||||
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
|
||||
@@ -828,8 +834,11 @@ proper position among the other output files. */
|
||||
@@ -808,8 +814,11 @@ proper position among the other output files. */
|
||||
#ifdef LIBLSAN_EARLY_SPEC
|
||||
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
@@ -253,7 +253,7 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
STATIC_LIBLSAN_LIBS
|
||||
#else
|
||||
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
|
||||
@@ -844,8 +853,11 @@ proper position among the other output files. */
|
||||
@@ -824,8 +833,11 @@ proper position among the other output files. */
|
||||
#define STATIC_LIBUBSAN_LIBS \
|
||||
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
|
||||
#ifdef HAVE_LD_STATIC_DYNAMIC
|
||||
@@ -268,5 +268,5 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
#else
|
||||
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
From 35c02ea8267e193b92f30495c94ee1e8e5c2be8e Mon Sep 17 00:00:00 2001
|
||||
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] Enable -Wformat and -Wformat-security by default.
|
||||
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
|
||||
|
||||
---
|
||||
gcc/c-family/c.opt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
|
||||
index 75b6531860e..78830ce4b42 100644
|
||||
index a75038930ae..b98726f33ed 100644
|
||||
--- a/gcc/c-family/c.opt
|
||||
+++ b/gcc/c-family/c.opt
|
||||
@@ -805,7 +805,7 @@ Warn about function calls with format strings that write past the end
|
||||
of the destination region.
|
||||
@@ -704,7 +704,7 @@ Warn about function calls with format strings that write past the end
|
||||
of the destination region. Same as -Wformat-overflow=1.
|
||||
|
||||
Wformat-security
|
||||
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
|
||||
@@ -20,7 +20,7 @@ index 75b6531860e..78830ce4b42 100644
|
||||
Warn about possible security problems with format functions.
|
||||
|
||||
Wformat-signedness
|
||||
@@ -830,7 +830,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
|
||||
@@ -725,7 +725,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
|
||||
Warn about zero-length formats.
|
||||
|
||||
Wformat=
|
||||
@@ -28,7 +28,7 @@ index 75b6531860e..78830ce4b42 100644
|
||||
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
|
||||
Warn about printf/scanf/strftime/strfmon format string anomalies.
|
||||
|
||||
Wframe-address
|
||||
Wformat-overflow=
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
From 0b82663fd2f054e07e116c4dcc5019f7e969cd3e Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 01:44:20 -0700
|
||||
Subject: [PATCH] Enable -Wtrampolines by default.
|
||||
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.
|
||||
|
||||
---
|
||||
gcc/common.opt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/common.opt b/gcc/common.opt
|
||||
index bea1adc0940..e65a575d9f8 100644
|
||||
index 64c4277c991..c24839d32bc 100644
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -829,7 +829,7 @@ Common Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wa
|
||||
Warn if a comparison always evaluates to true or false.
|
||||
@@ -803,7 +803,7 @@ Common Var(warn_system_headers) Warning
|
||||
Do not suppress warnings from system headers.
|
||||
|
||||
Wtrampolines
|
||||
-Common Var(warn_trampolines) Warning
|
||||
@@ -21,5 +21,5 @@ index bea1adc0940..e65a575d9f8 100644
|
||||
|
||||
Wtrivial-auto-var-init
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
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
|
||||
-ffreestanding Change the buffer size.
|
||||
|
||||
---
|
||||
gcc/gcc.cc | 8 +++++++-
|
||||
gcc/params.opt | 2 +-
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index da6417dd0d1..b5a6f200635 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -983,6 +983,12 @@ proper position among the other output files. */
|
||||
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
|
||||
#endif
|
||||
|
||||
+#ifdef ENABLE_DEFAULT_SSP
|
||||
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
|
||||
+#else
|
||||
+#define NO_SSP_SPEC ""
|
||||
+#endif
|
||||
+
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
@@ -1282,7 +1288,7 @@ static const char *cc1_options =
|
||||
%{-version:--version}\
|
||||
%{-help=*:--help=%*}\
|
||||
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
|
||||
- %{fsyntax-only:-o %j} %{-param*}\
|
||||
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
|
||||
%{coverage:-fprofile-arcs -ftest-coverage}\
|
||||
%{fprofile-arcs|fprofile-generate*|coverage:\
|
||||
%{!fprofile-update=single:\
|
||||
diff --git a/gcc/params.opt b/gcc/params.opt
|
||||
index 823cdb2ff85..5b096899b40 100644
|
||||
--- a/gcc/params.opt
|
||||
+++ b/gcc/params.opt
|
||||
@@ -1006,7 +1006,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
|
||||
The maximum number of SSA_NAME assignments to follow in determining a value.
|
||||
|
||||
-param=ssp-buffer-size=
|
||||
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
|
||||
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
|
||||
The lower bound for a buffer to be considered for stack smashing protection.
|
||||
|
||||
-param=stack-clash-protection-guard-size=
|
||||
--
|
||||
2.41.0
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
From 3acf32fc94fd447874b2f1447a19a65f0905bff5 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 01:49:03 -0700
|
||||
Subject: [PATCH] gcc: disable SSP on -ffreestanding, -nostdlib and
|
||||
-nodefaultlibs
|
||||
|
||||
---
|
||||
gcc/gcc.cc | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index fc9c7d15b04..7b0d3d2743b 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1009,6 +1009,12 @@ proper position among the other output files. */
|
||||
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
|
||||
#endif
|
||||
|
||||
+#ifdef ENABLE_DEFAULT_SSP
|
||||
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
|
||||
+#else
|
||||
+#define NO_SSP_SPEC ""
|
||||
+#endif
|
||||
+
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
@@ -1314,7 +1320,7 @@ static const char *cc1_options =
|
||||
%{-version:--version}\
|
||||
%{-help=*:--help=%*}\
|
||||
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
|
||||
- %{fsyntax-only:-o %j} %{-param*}\
|
||||
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
|
||||
%{coverage:-fprofile-arcs -ftest-coverage}\
|
||||
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
|
||||
%{!fprofile-update=single:\
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
From f89d8e95b809d02eceee416b463200c9abb2b33e Mon Sep 17 00:00:00 2001
|
||||
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] Ensure that msgfmt doesn't encounter problems during gcc
|
||||
bootstrapping.
|
||||
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
|
||||
gcc bootstrapping.
|
||||
|
||||
Solves error messages like the following:
|
||||
|
||||
@@ -26,7 +26,7 @@ https://bugs.gentoo.org/295480
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
|
||||
index 7f84a99533e..a4c6284f788 100644
|
||||
index 12d34910830..61b13762b71 100644
|
||||
--- a/libstdc++-v3/po/Makefile.am
|
||||
+++ b/libstdc++-v3/po/Makefile.am
|
||||
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
|
||||
@@ -50,5 +50,5 @@ index 8e93445acd2..d6ff06e5ddb 100644
|
||||
|
||||
all-local: all-local-$(USE_NLS)
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From bb98973bdb5fe8bd040e238afe92845203929b59 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 01:50:42 -0700
|
||||
Subject: [PATCH] gcc: params: set default ssp-buffer-size to 4
|
||||
|
||||
---
|
||||
gcc/params.opt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/params.opt b/gcc/params.opt
|
||||
index 64e453d29b7..bba3fd574f2 100644
|
||||
--- a/gcc/params.opt
|
||||
+++ b/gcc/params.opt
|
||||
@@ -1064,7 +1064,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
|
||||
The maximum number of SSA_NAME assignments to follow in determining a value.
|
||||
|
||||
-param=ssp-buffer-size=
|
||||
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
|
||||
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
|
||||
The lower bound for a buffer to be considered for stack smashing protection.
|
||||
|
||||
-param=stack-clash-protection-guard-size=
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
From b45303198567828a5240baf932a8c13255f35d20 Mon Sep 17 00:00:00 2001
|
||||
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] Don't declare asprintf if defined as a macro.
|
||||
Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
|
||||
|
||||
---
|
||||
include/libiberty.h | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/include/libiberty.h b/include/libiberty.h
|
||||
index d4e8791b14b..c074980ed80 100644
|
||||
index 1d5c779fcff..19e3cb1e31c 100644
|
||||
--- a/include/libiberty.h
|
||||
+++ b/include/libiberty.h
|
||||
@@ -678,8 +678,11 @@ extern void *bsearch_r (const void *, const void *,
|
||||
@@ -652,8 +652,11 @@ extern void *bsearch_r (const void *, const void *,
|
||||
/* Like sprintf but provides a pointer to malloc'd storage, which must
|
||||
be freed by the caller. */
|
||||
|
||||
@@ -24,5 +24,5 @@ index d4e8791b14b..c074980ed80 100644
|
||||
/* Like asprintf but allocates memory without fail. This works like
|
||||
xmalloc. */
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
From 68e2c9356221ba30b27840b9449f742505584cf1 Mon Sep 17 00:00:00 2001
|
||||
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] libiberty: copy PIC objects during build process
|
||||
Subject: [PATCH 11/35] libiberty: copy PIC objects during build process
|
||||
|
||||
---
|
||||
libiberty/Makefile.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
|
||||
index ce54d88278d..10c212a1ad3 100644
|
||||
index 72608f3e4a7..58356884728 100644
|
||||
--- a/libiberty/Makefile.in
|
||||
+++ b/libiberty/Makefile.in
|
||||
@@ -266,6 +266,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
|
||||
@@ -265,6 +265,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
|
||||
$(AR) $(AR_FLAGS) $(TARGETLIB) \
|
||||
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
|
||||
$(RANLIB) $(TARGETLIB); \
|
||||
@@ -20,5 +20,5 @@ index ce54d88278d..10c212a1ad3 100644
|
||||
else true; fi
|
||||
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ca482f8c9cac9617855f908dd30d3d6144e850a0 Mon Sep 17 00:00:00 2001
|
||||
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] libgcc_s
|
||||
Subject: [PATCH 12/35] libgcc_s
|
||||
|
||||
---
|
||||
gcc/config/i386/i386-expand.cc | 4 ++--
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] libgcc_s
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
|
||||
index cdfd94d3c73..a3a6c988833 100644
|
||||
index 0d817fc3f3b..2e99db00db9 100644
|
||||
--- a/gcc/config/i386/i386-expand.cc
|
||||
+++ b/gcc/config/i386/i386-expand.cc
|
||||
@@ -13643,10 +13643,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
|
||||
@@ -12691,10 +12691,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
|
||||
{
|
||||
case IX86_BUILTIN_CPU_INIT:
|
||||
{
|
||||
@@ -27,7 +27,7 @@ index cdfd94d3c73..a3a6c988833 100644
|
||||
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
|
||||
}
|
||||
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
|
||||
index 2484dc839bf..e980030ef23 100644
|
||||
index 50b6d8248a2..724ced402a1 100644
|
||||
--- a/libgcc/config/i386/cpuinfo.c
|
||||
+++ b/libgcc/config/i386/cpuinfo.c
|
||||
@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
|
||||
@@ -53,5 +53,5 @@ index 8506a635790..564296f788e 100644
|
||||
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
|
||||
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
From 6dfb241ae9f879f4945941273dd73eb13f127b06 Mon Sep 17 00:00:00 2001
|
||||
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] nopie
|
||||
Subject: [PATCH 13/35] nopie
|
||||
|
||||
---
|
||||
gcc/configure | 25 +++++++++++++++++++++++++
|
||||
gcc/configure.ac | 11 +++++++++++
|
||||
2 files changed, 36 insertions(+)
|
||||
gcc/configure | 27 +++++++++++++++++++++++++++
|
||||
gcc/configure.ac | 13 +++++++++++++
|
||||
2 files changed, 40 insertions(+)
|
||||
|
||||
diff --git a/gcc/configure b/gcc/configure
|
||||
index 0f4a5d52c30..343563c8948 100755
|
||||
index 23da7d55d..f38732bb2 100755
|
||||
--- a/gcc/configure
|
||||
+++ b/gcc/configure
|
||||
@@ -34586,6 +34586,29 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
@@ -34534,6 +34534,29 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5
|
||||
$as_echo "$gcc_cv_no_pie" >&6; }
|
||||
@@ -42,7 +42,7 @@ index 0f4a5d52c30..343563c8948 100755
|
||||
|
||||
if test x$enable_host_shared = xyes; then
|
||||
PICFLAG=-fPIC
|
||||
@@ -34603,6 +34626,8 @@ if test x$enable_host_pie = xyes; then
|
||||
@@ -34551,6 +34574,8 @@ if test x$enable_host_pie = xyes; then
|
||||
LD_PICFLAG=-pie
|
||||
elif test x$gcc_cv_no_pie = xyes; then
|
||||
LD_PICFLAG=-no-pie
|
||||
@@ -52,10 +52,10 @@ index 0f4a5d52c30..343563c8948 100755
|
||||
LD_PICFLAG=
|
||||
fi
|
||||
diff --git a/gcc/configure.ac b/gcc/configure.ac
|
||||
index b0e3615e5aa..b3948469d17 100644
|
||||
index d7cf0b92c..db2e2c802 100644
|
||||
--- a/gcc/configure.ac
|
||||
+++ b/gcc/configure.ac
|
||||
@@ -7802,6 +7802,15 @@ AC_CACHE_CHECK([for -no-pie option],
|
||||
@@ -7781,6 +7781,15 @@ AC_CACHE_CHECK([for -no-pie option],
|
||||
[gcc_cv_no_pie=yes],
|
||||
[gcc_cv_no_pie=no])
|
||||
LDFLAGS="$saved_LDFLAGS"])
|
||||
@@ -71,7 +71,7 @@ index b0e3615e5aa..b3948469d17 100644
|
||||
|
||||
if test x$enable_host_shared = xyes; then
|
||||
PICFLAG=-fPIC
|
||||
@@ -7819,6 +7828,8 @@ if test x$enable_host_pie = xyes; then
|
||||
@@ -7798,6 +7807,8 @@ if test x$enable_host_pie = xyes; then
|
||||
LD_PICFLAG=-pie
|
||||
elif test x$gcc_cv_no_pie = xyes; then
|
||||
LD_PICFLAG=-no-pie
|
||||
@@ -81,5 +81,5 @@ index b0e3615e5aa..b3948469d17 100644
|
||||
LD_PICFLAG=
|
||||
fi
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+4
-4
@@ -1,14 +1,14 @@
|
||||
From 8ac6aeca5d6192ee16b959bd8c1903a52d408a55 Mon Sep 17 00:00:00 2001
|
||||
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] ada: fix shared linking
|
||||
Subject: [PATCH 14/35] ada: fix shared linking
|
||||
|
||||
---
|
||||
gcc/ada/link.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
|
||||
index 9e3385ca94f..2c0cca6e480 100644
|
||||
index f2126441208..22cfa9c641f 100644
|
||||
--- a/gcc/ada/link.c
|
||||
+++ b/gcc/ada/link.c
|
||||
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
|
||||
@@ -38,5 +38,5 @@ index 9e3385ca94f..2c0cca6e480 100644
|
||||
unsigned char __gnat_objlist_file_supported = 1;
|
||||
const char *__gnat_object_library_extension = ".a";
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
From 7323d68ae46fc8e33c0746799d820a4e4c8c8b72 Mon Sep 17 00:00:00 2001
|
||||
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] build: fix CXXFLAGS_FOR_BUILD passing
|
||||
Subject: [PATCH 15/35] build: fix CXXFLAGS_FOR_BUILD passing
|
||||
|
||||
---
|
||||
Makefile.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index b1ed67d3d4f..1e039c20550 100644
|
||||
index 06a9398e172..6ff2b3f9925 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -179,6 +179,7 @@ BUILD_EXPORTS = \
|
||||
@@ -178,6 +178,7 @@ BUILD_EXPORTS = \
|
||||
# built for the build system to override those in BASE_FLAGS_TO_PASS.
|
||||
EXTRA_BUILD_FLAGS = \
|
||||
CFLAGS="$(CFLAGS_FOR_BUILD)" \
|
||||
@@ -20,5 +20,5 @@ index b1ed67d3d4f..1e039c20550 100644
|
||||
|
||||
# This is the list of directories to built for the host system.
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+4
-4
@@ -1,14 +1,14 @@
|
||||
From eaf89c8c91806905c6e1ec9519cbfb56296204b0 Mon Sep 17 00:00:00 2001
|
||||
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] add fortify-headers paths
|
||||
Subject: [PATCH 16/35] add fortify-headers paths
|
||||
|
||||
---
|
||||
gcc/config/linux.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
|
||||
index d6280a4d4dd..ba69fb9fad7 100644
|
||||
index e3aca79cccc..b3537b8fbeb 100644
|
||||
--- a/gcc/config/linux.h
|
||||
+++ b/gcc/config/linux.h
|
||||
@@ -159,6 +159,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -21,5 +21,5 @@ index d6280a4d4dd..ba69fb9fad7 100644
|
||||
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
|
||||
#else
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+7
-7
@@ -1,9 +1,9 @@
|
||||
From bdedcd9db7b8291637c5147dd82e8a9e3f5f9c87 Mon Sep 17 00:00:00 2001
|
||||
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] 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.
|
||||
Subject: [PATCH 17/35] 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
|
||||
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
|
||||
stack-protector flag usage.
|
||||
@@ -13,10 +13,10 @@ Subject: [PATCH] Alpine musl package provides libssp_nonshared.a. We link to
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 7b0d3d2743b..e46e976a2e8 100644
|
||||
index b5a6f200635..6cbb726599b 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1017,8 +1017,7 @@ proper position among the other output files. */
|
||||
@@ -991,8 +991,7 @@ proper position among the other output files. */
|
||||
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
@@ -27,5 +27,5 @@ index 7b0d3d2743b..e46e976a2e8 100644
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
"|fstack-protector-strong|fstack-protector-explicit" \
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+8
-8
@@ -1,7 +1,7 @@
|
||||
From 586ce3614d4fc3fbeccf01659114a4643c1879c8 Mon Sep 17 00:00:00 2001
|
||||
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] DP: Use --push-state/--pop-state for gold as well when
|
||||
Subject: [PATCH 18/35] DP: Use --push-state/--pop-state for gold as well when
|
||||
linking libtsan.
|
||||
|
||||
---
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] DP: Use --push-state/--pop-state for gold as well when
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index e46e976a2e8..607c8ca1d42 100644
|
||||
index 6cbb726599b..59390fd39d6 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -775,10 +775,10 @@ proper position among the other output files. */
|
||||
@@ -755,10 +755,10 @@ proper position among the other output files. */
|
||||
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
|
||||
@@ -25,7 +25,7 @@ index e46e976a2e8..607c8ca1d42 100644
|
||||
STATIC_LIBASAN_LIBS
|
||||
#else
|
||||
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
|
||||
@@ -814,10 +814,10 @@ proper position among the other output files. */
|
||||
@@ -794,10 +794,10 @@ proper position among the other output files. */
|
||||
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
|
||||
@@ -38,7 +38,7 @@ index e46e976a2e8..607c8ca1d42 100644
|
||||
STATIC_LIBTSAN_LIBS
|
||||
#else
|
||||
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
|
||||
@@ -835,10 +835,10 @@ proper position among the other output files. */
|
||||
@@ -815,10 +815,10 @@ proper position among the other output files. */
|
||||
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
|
||||
@@ -51,7 +51,7 @@ index e46e976a2e8..607c8ca1d42 100644
|
||||
STATIC_LIBLSAN_LIBS
|
||||
#else
|
||||
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
|
||||
@@ -854,10 +854,10 @@ proper position among the other output files. */
|
||||
@@ -834,10 +834,10 @@ proper position among the other output files. */
|
||||
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
|
||||
#ifdef HAVE_LD_STATIC_DYNAMIC
|
||||
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
|
||||
@@ -65,5 +65,5 @@ index e46e976a2e8..607c8ca1d42 100644
|
||||
#else
|
||||
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
From 0ca7f92018d0bc04a72655f3b130c9aaeea1b771 Mon Sep 17 00:00:00 2001
|
||||
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] aarch64: disable multilib support
|
||||
Subject: [PATCH 19/35] aarch64: disable multilib support
|
||||
|
||||
multilib is unsupported on Alpine GCC
|
||||
---
|
||||
@@ -9,7 +9,7 @@ multilib is unsupported on Alpine GCC
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
|
||||
index 70e36b3299e..e00c3becd3f 100644
|
||||
index 57bf4100fcd..172894b57ef 100644
|
||||
--- a/gcc/config/aarch64/t-aarch64-linux
|
||||
+++ b/gcc/config/aarch64/t-aarch64-linux
|
||||
@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
|
||||
@@ -22,5 +22,5 @@ index 70e36b3299e..e00c3becd3f 100644
|
||||
|
||||
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
From b48898c8fbd7828b81f407c74c25cf8e07fb73a4 Mon Sep 17 00:00:00 2001
|
||||
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] s390x: disable multilib support
|
||||
Subject: [PATCH 20/35] s390x: disable multilib support
|
||||
|
||||
multilib is not supported on Alpine GCC at present
|
||||
---
|
||||
@@ -21,5 +21,5 @@ index cc6ab367072..7f498ee1cdc 100644
|
||||
+MULTILIB_OSDIRNAMES = m64=../lib
|
||||
+MULTILIB_OSDIRNAMES+= m32=../lib32
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
From 158d93ce86f3d311ce489d0740326027068ca721 Mon Sep 17 00:00:00 2001
|
||||
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] ppc64[le]: disable multilib support
|
||||
Subject: [PATCH 21/35] ppc64[le]: disable multilib support
|
||||
|
||||
multilib is not presently supported on Alpine GCC
|
||||
---
|
||||
@@ -36,7 +36,7 @@ index 4e371255533..128c75c7d39 100644
|
||||
endif
|
||||
|
||||
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
|
||||
index f56b47c268e..c5f757a6284 100644
|
||||
index 01a94242308..b3a76379c03 100644
|
||||
--- a/gcc/config/rs6000/t-linux64
|
||||
+++ b/gcc/config/rs6000/t-linux64
|
||||
@@ -28,8 +28,8 @@
|
||||
@@ -77,5 +77,5 @@ index 2e63bdb9fc9..c6e1c5db65d 100644
|
||||
+MULTILIB_OSDIRNAMES += m32=../lib32
|
||||
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
From 6957fc21caca80f5e01db15df6dc8de46c85167b Mon Sep 17 00:00:00 2001
|
||||
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] x86_64: disable multilib support
|
||||
Subject: [PATCH 22/35] x86_64: disable multilib support
|
||||
|
||||
multilib is not presently supported on Alpine GCC
|
||||
---
|
||||
@@ -9,7 +9,7 @@ multilib is not presently supported on Alpine GCC
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
|
||||
index 64a4a20e64f..9a8eb8dd8d1 100644
|
||||
index 138956b0962..bc03dab874f 100644
|
||||
--- a/gcc/config/i386/t-linux64
|
||||
+++ b/gcc/config/i386/t-linux64
|
||||
@@ -33,6 +33,6 @@
|
||||
@@ -22,5 +22,5 @@ index 64a4a20e64f..9a8eb8dd8d1 100644
|
||||
+MULTILIB_OSDIRNAMES+= m32=../lib32
|
||||
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+7
-9
@@ -1,7 +1,7 @@
|
||||
From fdcbe7ee4ce81cdf247966385c8d521ac3f5a38c Mon Sep 17 00:00:00 2001
|
||||
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] riscv: disable multilib support
|
||||
Subject: [PATCH 23/35] riscv: disable multilib support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@@ -43,10 +43,10 @@ library.
|
||||
2 files changed, 5 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
|
||||
index 282c77b6a7b..07adae3d59c 100644
|
||||
index f8c2c351e5a..8d9881eadeb 100644
|
||||
--- a/gcc/config/riscv/linux.h
|
||||
+++ b/gcc/config/riscv/linux.h
|
||||
@@ -61,11 +61,3 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -60,11 +60,3 @@ along with GCC; see the file COPYING3. If not see
|
||||
%{rdynamic:-export-dynamic} \
|
||||
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
|
||||
%{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}}"
|
||||
@@ -59,10 +59,10 @@ index 282c77b6a7b..07adae3d59c 100644
|
||||
-
|
||||
-#define RISCV_USE_CUSTOMISED_MULTI_LIB select_by_abi
|
||||
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
|
||||
index a6f64f88d25..f88776ec520 100644
|
||||
index 216d2776a18..1a8a863853e 100644
|
||||
--- a/gcc/config/riscv/t-linux
|
||||
+++ b/gcc/config/riscv/t-linux
|
||||
@@ -1,5 +1,8 @@
|
||||
@@ -1,3 +1,6 @@
|
||||
-# Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
|
||||
-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
|
||||
+MULTILIB_OPTIONS := march=rv64gc
|
||||
@@ -71,8 +71,6 @@ index a6f64f88d25..f88776ec520 100644
|
||||
+MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib,$(MULTILIB_DIRNAMES)))
|
||||
MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
|
||||
+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc
|
||||
|
||||
MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu)
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+7
-7
@@ -1,7 +1,7 @@
|
||||
From 6f63901256443978a2c3746e72bd5762166a7790 Mon Sep 17 00:00:00 2001
|
||||
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] always build libgcc_eh.a
|
||||
Subject: [PATCH 24/35] always build libgcc_eh.a
|
||||
|
||||
highly inspired by:
|
||||
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
|
||||
@@ -10,10 +10,10 @@ highly inspired by:
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
|
||||
index 0719fd0615d..80bb8f1622f 100644
|
||||
index 6c4dc79ab71..023cede18a7 100644
|
||||
--- a/libgcc/Makefile.in
|
||||
+++ b/libgcc/Makefile.in
|
||||
@@ -971,8 +971,9 @@ ifneq ($(LIBUNWIND),)
|
||||
@@ -960,8 +960,9 @@ ifneq ($(LIBUNWIND),)
|
||||
all: libunwind.a
|
||||
endif
|
||||
|
||||
@@ -24,7 +24,7 @@ index 0719fd0615d..80bb8f1622f 100644
|
||||
ifneq ($(LIBUNWIND),)
|
||||
all: libunwind$(SHLIB_EXT)
|
||||
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
|
||||
@@ -1177,10 +1178,6 @@ install-libunwind:
|
||||
@@ -1163,10 +1164,6 @@ install-libunwind:
|
||||
install-shared:
|
||||
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
|
||||
|
||||
@@ -35,7 +35,7 @@ index 0719fd0615d..80bb8f1622f 100644
|
||||
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||
@shlib_base_name@,libgcc_s,$(subst \
|
||||
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
||||
@@ -1197,6 +1194,10 @@ ifeq ($(enable_gcov),yes)
|
||||
@@ -1183,6 +1180,10 @@ ifeq ($(enable_gcov),yes)
|
||||
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
|
||||
endif
|
||||
|
||||
@@ -47,5 +47,5 @@ index 0719fd0615d..80bb8f1622f 100644
|
||||
for file in $$parts; do \
|
||||
rm -f $(DESTDIR)$(inst_libdir)/$$file; \
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
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
|
||||
|
||||
---
|
||||
gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
|
||||
gcc/ada/libgnarl/s-taprop__linux.adb | 53 ++--------------------------
|
||||
2 files changed, 3 insertions(+), 61 deletions(-)
|
||||
|
||||
diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
|
||||
index a5e645d334d..32165347071 100644
|
||||
--- a/gcc/ada/libgnarl/s-osinte__linux.ads
|
||||
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads
|
||||
@@ -403,12 +403,6 @@ package System.OS_Interface is
|
||||
PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
|
||||
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
|
||||
|
||||
- function pthread_rwlockattr_setkind_np
|
||||
- (attr : access pthread_rwlockattr_t;
|
||||
- pref : int) return int;
|
||||
- pragma Import
|
||||
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
|
||||
-
|
||||
function pthread_rwlock_init
|
||||
(mutex : access pthread_rwlock_t;
|
||||
attr : access pthread_rwlockattr_t) return int;
|
||||
@@ -470,11 +464,6 @@ package System.OS_Interface is
|
||||
protocol : int) return int;
|
||||
pragma Import (C, pthread_mutexattr_setprotocol);
|
||||
|
||||
- function pthread_mutexattr_setprioceiling
|
||||
- (attr : access pthread_mutexattr_t;
|
||||
- prioceiling : int) return int;
|
||||
- pragma Import (C, pthread_mutexattr_setprioceiling);
|
||||
-
|
||||
type struct_sched_param is record
|
||||
sched_priority : int; -- scheduling priority
|
||||
end record;
|
||||
diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
|
||||
index 821ceef30e4..ae95b58e01e 100644
|
||||
--- a/gcc/ada/libgnarl/s-taprop__linux.adb
|
||||
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb
|
||||
@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
|
||||
pragma Import
|
||||
(C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
|
||||
|
||||
- function GNAT_has_cap_sys_nice return C.int;
|
||||
- pragma Import
|
||||
- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice");
|
||||
-- We do not have pragma Linker_Options ("-lcap"); here, because this
|
||||
-- library is not present on many Linux systems. 'libcap' is the Linux
|
||||
-- "capabilities" library, called by __gnat_has_cap_sys_nice.
|
||||
@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is
|
||||
-- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
|
||||
-- GNU/Linux, so we map 0 .. 98 to 1 .. 99.
|
||||
|
||||
- function Get_Ceiling_Support return Boolean;
|
||||
- -- Get the value of the Ceiling_Support constant (see below).
|
||||
- -- Note well: If this function or related code is modified, it should be
|
||||
- -- tested by hand, because automated testing doesn't exercise it.
|
||||
-
|
||||
- -------------------------
|
||||
- -- Get_Ceiling_Support --
|
||||
- -------------------------
|
||||
-
|
||||
- function Get_Ceiling_Support return Boolean is
|
||||
- Ceiling_Support : Boolean := False;
|
||||
- begin
|
||||
- if Locking_Policy /= 'C' then
|
||||
- return False;
|
||||
- end if;
|
||||
-
|
||||
- declare
|
||||
- function geteuid return Integer;
|
||||
- pragma Import (C, geteuid, "geteuid");
|
||||
- Superuser : constant Boolean := geteuid = 0;
|
||||
- Has_Cap : constant C.int := GNAT_has_cap_sys_nice;
|
||||
- pragma Assert (Has_Cap in 0 | 1);
|
||||
- begin
|
||||
- Ceiling_Support := Superuser or else Has_Cap = 1;
|
||||
- end;
|
||||
-
|
||||
- return Ceiling_Support;
|
||||
- end Get_Ceiling_Support;
|
||||
-
|
||||
- pragma Warnings (Off, "non-preelaborable call not allowed*");
|
||||
- Ceiling_Support : constant Boolean := Get_Ceiling_Support;
|
||||
- pragma Warnings (On, "non-preelaborable call not allowed*");
|
||||
-- True if the locking policy is Ceiling_Locking, and the current process
|
||||
-- has permission to use this policy. The process has permission if it is
|
||||
-- running as 'root', or if the capability was set by the setcap command,
|
||||
@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is
|
||||
-- Init_Mutex --
|
||||
----------------
|
||||
|
||||
+ pragma Warnings (Off, "formal parameter * is not referenced");
|
||||
function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is
|
||||
+ pragma Warnings (On, "formal parameter * is not referenced");
|
||||
Mutex_Attr : aliased pthread_mutexattr_t;
|
||||
Result, Result_2 : C.int;
|
||||
|
||||
@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is
|
||||
return Result;
|
||||
end if;
|
||||
|
||||
- if Ceiling_Support then
|
||||
- Result := pthread_mutexattr_setprotocol
|
||||
- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT);
|
||||
- pragma Assert (Result = 0);
|
||||
-
|
||||
- Result := pthread_mutexattr_setprioceiling
|
||||
- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio));
|
||||
- pragma Assert (Result = 0);
|
||||
-
|
||||
- elsif Locking_Policy = 'I' then
|
||||
+ if Locking_Policy = 'I' then
|
||||
Result := pthread_mutexattr_setprotocol
|
||||
(Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
|
||||
pragma Assert (Result = 0);
|
||||
@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is
|
||||
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
|
||||
pragma Assert (Result = 0);
|
||||
|
||||
- Result := pthread_rwlockattr_setkind_np
|
||||
- (RWlock_Attr'Access,
|
||||
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
|
||||
- pragma Assert (Result = 0);
|
||||
-
|
||||
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
|
||||
|
||||
pragma Assert (Result in 0 | ENOMEM);
|
||||
--
|
||||
2.41.0
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
From a365def37f5de93ad85588d8e2c02c0df28e88d6 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 02:09:02 -0700
|
||||
Subject: [PATCH] ada: libgnarl: remove use of glibc-specific
|
||||
pthread_rwlockattr_setkind_np
|
||||
|
||||
musl's thread library does not implement it
|
||||
|
||||
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
|
||||
---
|
||||
gcc/ada/libgnarl/s-osinte__linux.ads | 10 ----------
|
||||
gcc/ada/libgnarl/s-taprop__linux.adb | 7 -------
|
||||
2 files changed, 17 deletions(-)
|
||||
|
||||
diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
|
||||
index 7aeb15da523..5551b701e5a 100644
|
||||
--- a/gcc/ada/libgnarl/s-osinte__linux.ads
|
||||
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads
|
||||
@@ -402,16 +402,6 @@ package System.OS_Interface is
|
||||
(attr : access pthread_rwlockattr_t) return int;
|
||||
pragma Import (C, pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy");
|
||||
|
||||
- PTHREAD_RWLOCK_PREFER_READER_NP : constant := 0;
|
||||
- PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1;
|
||||
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
|
||||
-
|
||||
- function pthread_rwlockattr_setkind_np
|
||||
- (attr : access pthread_rwlockattr_t;
|
||||
- pref : int) return int;
|
||||
- pragma Import
|
||||
- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
|
||||
-
|
||||
function pthread_rwlock_init
|
||||
(mutex : access pthread_rwlock_t;
|
||||
attr : access pthread_rwlockattr_t) return int;
|
||||
diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
|
||||
index 8f4c835baa7..6df36c7d8f4 100644
|
||||
--- a/gcc/ada/libgnarl/s-taprop__linux.adb
|
||||
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb
|
||||
@@ -409,16 +409,9 @@ package body System.Task_Primitives.Operations is
|
||||
Result : C.int;
|
||||
|
||||
begin
|
||||
- -- Set the rwlock to prefer writer to avoid writers starvation
|
||||
-
|
||||
Result := pthread_rwlockattr_init (RWlock_Attr'Access);
|
||||
pragma Assert (Result = 0);
|
||||
|
||||
- Result := pthread_rwlockattr_setkind_np
|
||||
- (RWlock_Attr'Access,
|
||||
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
|
||||
- pragma Assert (Result = 0);
|
||||
-
|
||||
Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
|
||||
|
||||
pragma Assert (Result in 0 | ENOMEM);
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
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
|
||||
|
||||
---
|
||||
gcc/ada/Makefile.rtl | 16 ++++++++--------
|
||||
gcc/ada/adaint.c | 34 +++++++++++++++++++---------------
|
||||
gcc/ada/adaint.h | 10 ++++------
|
||||
gcc/ada/terminals.c | 8 ++++----
|
||||
4 files changed, 35 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
|
||||
index 32cbdb692..463028fbe 100644
|
||||
--- a/gcc/ada/Makefile.rtl
|
||||
+++ b/gcc/ada/Makefile.rtl
|
||||
@@ -1558,7 +1558,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
|
||||
s-intman.adb<libgnarl/s-intman__posix.adb \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
a-exetim.adb<libgnarl/a-exetim__posix.adb \
|
||||
a-exetim.ads<libgnarl/a-exetim__default.ads \
|
||||
s-linux.ads<libgnarl/s-linux.ads \
|
||||
@@ -2144,7 +2144,7 @@ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
|
||||
g-sercom.adb<libgnat/g-sercom__linux.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
$(GNATRTL_128BIT_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
system.ads<libgnat/system-linux-loongarch.ads
|
||||
@@ -2232,7 +2232,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
|
||||
s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
system.ads<libgnat/system-linux-ppc.ads
|
||||
@@ -2267,7 +2267,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
|
||||
endif
|
||||
|
||||
# ARM linux, GNU eabi
|
||||
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
|
||||
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
|
||||
LIBGNAT_TARGET_PAIRS = \
|
||||
a-intnam.ads<libgnarl/a-intnam__linux.ads \
|
||||
s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
|
||||
@@ -2311,7 +2311,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
|
||||
s-intman.adb<libgnarl/s-intman__posix.adb \
|
||||
s-linux.ads<libgnarl/s-linux.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
s-mudido.adb<libgnarl/s-mudido__affinity.adb \
|
||||
s-osinte.ads<libgnarl/s-osinte__linux.ads \
|
||||
s-osinte.adb<libgnarl/s-osinte__posix.adb \
|
||||
@@ -2488,7 +2488,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
$(GNATRTL_128BIT_PAIRS) \
|
||||
@@ -2592,7 +2592,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(X86_64_TARGET_PAIRS) \
|
||||
$(SIMD_PATH_TARGET_PAIRS) \
|
||||
@@ -2637,7 +2637,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(X86_64_TARGET_PAIRS) \
|
||||
$(SIMD_PATH_TARGET_PAIRS) \
|
||||
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
|
||||
index 74aa3c412..ef6118f37 100644
|
||||
--- a/gcc/ada/adaint.c
|
||||
+++ b/gcc/ada/adaint.c
|
||||
@@ -94,6 +94,11 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/pstat.h>
|
||||
#endif
|
||||
+
|
||||
+#if defined (linux) || defined(__linux__)
|
||||
+#define _GNU_SOURCE 1
|
||||
+#include <sched.h>
|
||||
+#endif
|
||||
|
||||
#ifdef __PikeOS__
|
||||
#define __BSD_VISIBLE 1
|
||||
@@ -3465,7 +3470,6 @@ __gnat_lwp_self (void)
|
||||
#endif
|
||||
|
||||
#if defined (__linux__)
|
||||
-#include <sched.h>
|
||||
|
||||
/* glibc versions earlier than 2.7 do not define the routines to handle
|
||||
dynamically allocated CPU sets. For these targets, we use the static
|
||||
@@ -3475,7 +3479,7 @@ __gnat_lwp_self (void)
|
||||
|
||||
/* Dynamic cpu sets */
|
||||
|
||||
-cpu_set_t *
|
||||
+void *
|
||||
__gnat_cpu_alloc (size_t count)
|
||||
{
|
||||
return CPU_ALLOC (count);
|
||||
@@ -3488,33 +3492,33 @@ __gnat_cpu_alloc_size (size_t count)
|
||||
}
|
||||
|
||||
void
|
||||
-__gnat_cpu_free (cpu_set_t *set)
|
||||
+__gnat_cpu_free (void *set)
|
||||
{
|
||||
- CPU_FREE (set);
|
||||
+ CPU_FREE ((cpu_set_t *) set);
|
||||
}
|
||||
|
||||
void
|
||||
-__gnat_cpu_zero (size_t count, cpu_set_t *set)
|
||||
+__gnat_cpu_zero (size_t count, void *set)
|
||||
{
|
||||
- CPU_ZERO_S (count, set);
|
||||
+ CPU_ZERO_S (count, (cpu_set_t *) set);
|
||||
}
|
||||
|
||||
void
|
||||
-__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set)
|
||||
+__gnat_cpu_set (int cpu, size_t count, void *set)
|
||||
{
|
||||
/* Ada handles CPU numbers starting from 1, while C identifies the first
|
||||
CPU by a 0, so we need to adjust. */
|
||||
- CPU_SET_S (cpu - 1, count, set);
|
||||
+ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set);
|
||||
}
|
||||
|
||||
#else /* !CPU_ALLOC */
|
||||
|
||||
/* Static cpu sets */
|
||||
|
||||
-cpu_set_t *
|
||||
+void *
|
||||
__gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED)
|
||||
{
|
||||
- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t));
|
||||
+ return xmalloc (sizeof (cpu_set_t));
|
||||
}
|
||||
|
||||
size_t
|
||||
@@ -3524,23 +3528,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
|
||||
}
|
||||
|
||||
void
|
||||
-__gnat_cpu_free (cpu_set_t *set)
|
||||
+__gnat_cpu_free (void *set)
|
||||
{
|
||||
free (set);
|
||||
}
|
||||
|
||||
void
|
||||
-__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
|
||||
+__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set)
|
||||
{
|
||||
- CPU_ZERO (set);
|
||||
+ CPU_ZERO ((cpu_set_t *) set);
|
||||
}
|
||||
|
||||
void
|
||||
-__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set)
|
||||
+__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set)
|
||||
{
|
||||
/* Ada handles CPU numbers starting from 1, while C identifies the first
|
||||
CPU by a 0, so we need to adjust. */
|
||||
- CPU_SET (cpu - 1, set);
|
||||
+ CPU_SET (cpu - 1, (cpu_set_t *) set);
|
||||
}
|
||||
#endif /* !CPU_ALLOC */
|
||||
#endif /* __linux__ */
|
||||
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
|
||||
index 0cbfd0e15..f97ed905b 100644
|
||||
--- a/gcc/ada/adaint.h
|
||||
+++ b/gcc/ada/adaint.h
|
||||
@@ -319,13 +319,11 @@ extern void *__gnat_lwp_self (void);
|
||||
|
||||
/* Routines for interface to required CPU set primitives */
|
||||
|
||||
-#include <sched.h>
|
||||
-
|
||||
-extern cpu_set_t *__gnat_cpu_alloc (size_t);
|
||||
+extern void * __gnat_cpu_alloc (size_t);
|
||||
extern size_t __gnat_cpu_alloc_size (size_t);
|
||||
-extern void __gnat_cpu_free (cpu_set_t *);
|
||||
-extern void __gnat_cpu_zero (size_t, cpu_set_t *);
|
||||
-extern void __gnat_cpu_set (int, size_t, cpu_set_t *);
|
||||
+extern void __gnat_cpu_free (void *);
|
||||
+extern void __gnat_cpu_zero (size_t, void *);
|
||||
+extern void __gnat_cpu_set (int, size_t, void *);
|
||||
#endif
|
||||
|
||||
#if defined (_WIN32)
|
||||
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
|
||||
index 05af82c27..626ac35bc 100644
|
||||
--- a/gcc/ada/terminals.c
|
||||
+++ b/gcc/ada/terminals.c
|
||||
@@ -1134,7 +1134,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
|
||||
/* POSIX does not specify how to open the master side of a terminal.Several
|
||||
methods are available (system specific):
|
||||
1- using a cloning device (USE_CLONE_DEVICE)
|
||||
- 2- getpt (USE_GETPT)
|
||||
+ 2- posix_openpt (USE_POSIX_OPENPT)
|
||||
3- openpty (USE_OPENPTY)
|
||||
|
||||
When using the cloning device method, the macro USE_CLONE_DEVICE should
|
||||
@@ -1148,7 +1148,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
|
||||
#if defined (__APPLE__) || defined (BSD)
|
||||
#define USE_OPENPTY
|
||||
#elif defined (__linux__)
|
||||
-#define USE_GETPT
|
||||
+#define USE_POSIX_OPENPT
|
||||
#elif defined (__sun__)
|
||||
#define USE_CLONE_DEVICE "/dev/ptmx"
|
||||
#elif defined (_AIX)
|
||||
@@ -1197,8 +1197,8 @@ allocate_pty_desc (pty_desc **desc) {
|
||||
int master_fd = -1;
|
||||
char *slave_name = NULL;
|
||||
|
||||
-#ifdef USE_GETPT
|
||||
- master_fd = getpt ();
|
||||
+#if defined(USE_POSIX_OPENPT)
|
||||
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
|
||||
#elif defined (USE_OPENPTY)
|
||||
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
|
||||
#elif defined (USE_CLONE_DEVICE)
|
||||
@@ -1,50 +0,0 @@
|
||||
From e1572457f94a26da9a588a36afa3eb0e74122c34 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 02:13:19 -0700
|
||||
Subject: [PATCH] ada: libgnarl: use posix_openpt instead of glibc-specific
|
||||
getpt to open a pty
|
||||
|
||||
musl only implements posix_openpt(3), not the older glibc-specific getpt()
|
||||
and glibc implements both for ages.
|
||||
|
||||
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
|
||||
---
|
||||
gcc/ada/terminals.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
|
||||
index 89f887556c0..93557fe2631 100644
|
||||
--- a/gcc/ada/terminals.c
|
||||
+++ b/gcc/ada/terminals.c
|
||||
@@ -1134,7 +1134,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
|
||||
/* POSIX does not specify how to open the master side of a terminal.Several
|
||||
methods are available (system specific):
|
||||
1- using a cloning device (USE_CLONE_DEVICE)
|
||||
- 2- getpt (USE_GETPT)
|
||||
+ 2- posix_openpt (USE_POSIX_OPENPT)
|
||||
3- openpty (USE_OPENPTY)
|
||||
|
||||
When using the cloning device method, the macro USE_CLONE_DEVICE should
|
||||
@@ -1148,7 +1148,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
|
||||
#if defined (__APPLE__) || defined (BSD)
|
||||
#define USE_OPENPTY
|
||||
#elif defined (__linux__)
|
||||
-#define USE_GETPT
|
||||
+#define USE_POSIX_OPENPT
|
||||
#elif defined (__sun__)
|
||||
#define USE_CLONE_DEVICE "/dev/ptmx"
|
||||
#elif defined (_AIX)
|
||||
@@ -1197,8 +1197,8 @@ allocate_pty_desc (pty_desc **desc) {
|
||||
int master_fd = -1;
|
||||
char *slave_name = NULL;
|
||||
|
||||
-#ifdef USE_GETPT
|
||||
- master_fd = getpt ();
|
||||
+#if defined(USE_POSIX_OPENPT)
|
||||
+ master_fd = posix_openpt(O_RDWR | O_NOCTTY);
|
||||
#elif defined (USE_OPENPTY)
|
||||
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
|
||||
#elif defined (USE_CLONE_DEVICE)
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+23
-23
@@ -1,7 +1,7 @@
|
||||
From 6592e702844d31bcef17c340bfc13e0e1be9f132 Mon Sep 17 00:00:00 2001
|
||||
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] configure: Add --enable-autolink-libatomic, use in
|
||||
Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in
|
||||
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
|
||||
|
||||
This fixes issues with RISC-V.
|
||||
@@ -18,10 +18,10 @@ This fixes issues with RISC-V.
|
||||
9 files changed, 102 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 1e039c20550..20f535a306a 100644
|
||||
index 6ff2b3f9925..394b105b271 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -238,6 +238,7 @@ HOST_EXPORTS = \
|
||||
@@ -235,6 +235,7 @@ HOST_EXPORTS = \
|
||||
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
|
||||
READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
|
||||
TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
|
||||
@@ -30,10 +30,10 @@ index 1e039c20550..20f535a306a 100644
|
||||
GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
|
||||
GMPINC="$(HOST_GMPINC)"; export GMPINC; \
|
||||
diff --git a/gcc/config.in b/gcc/config.in
|
||||
index 8a531ed591c..40045ff35a5 100644
|
||||
index 0679fbbf4c6..ee81139b385 100644
|
||||
--- a/gcc/config.in
|
||||
+++ b/gcc/config.in
|
||||
@@ -131,6 +131,12 @@
|
||||
@@ -118,6 +118,12 @@
|
||||
#endif
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ index 8a531ed591c..40045ff35a5 100644
|
||||
format instead of DPD */
|
||||
#ifndef USED_FOR_TARGET
|
||||
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
|
||||
index 3c17ac6eade..0426efdb8c3 100644
|
||||
index b26b17f2f2a..3f64ea46180 100644
|
||||
--- a/gcc/config/gnu-user.h
|
||||
+++ b/gcc/config/gnu-user.h
|
||||
@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -71,10 +71,10 @@ index 3c17ac6eade..0426efdb8c3 100644
|
||||
|
||||
#undef LINK_GCC_C_SEQUENCE_SPEC
|
||||
diff --git a/gcc/configure b/gcc/configure
|
||||
index 343563c8948..54300a2a867 100755
|
||||
index e59cbee1767..787c35d4e25 100755
|
||||
--- a/gcc/configure
|
||||
+++ b/gcc/configure
|
||||
@@ -1003,6 +1003,7 @@ with_changes_root_url
|
||||
@@ -984,6 +984,7 @@ with_changes_root_url
|
||||
enable_languages
|
||||
with_multilib_list
|
||||
with_multilib_generator
|
||||
@@ -82,7 +82,7 @@ index 343563c8948..54300a2a867 100755
|
||||
with_zstd
|
||||
with_zstd_include
|
||||
with_zstd_lib
|
||||
@@ -1742,6 +1743,9 @@ Optional Features:
|
||||
@@ -1713,6 +1714,9 @@ Optional Features:
|
||||
--disable-shared don't provide a shared libgcc
|
||||
--disable-gcov don't provide libgcov and related host tools
|
||||
--enable-languages=LIST specify which front-ends to build
|
||||
@@ -92,7 +92,7 @@ index 343563c8948..54300a2a867 100755
|
||||
--disable-rpath do not hardcode runtime library paths
|
||||
--enable-sjlj-exceptions
|
||||
arrange to use setjmp/longjmp exception handling
|
||||
@@ -8400,7 +8404,6 @@ else
|
||||
@@ -8329,7 +8333,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ index 343563c8948..54300a2a867 100755
|
||||
# Check whether --with-multilib-generator was given.
|
||||
if test "${with_multilib_generator+set}" = set; then :
|
||||
withval=$with_multilib_generator; :
|
||||
@@ -8408,6 +8411,32 @@ else
|
||||
@@ -8337,6 +8340,32 @@ else
|
||||
with_multilib_generator=default
|
||||
fi
|
||||
|
||||
@@ -134,10 +134,10 @@ index 343563c8948..54300a2a867 100755
|
||||
# -------------------------
|
||||
# Checks for other programs
|
||||
diff --git a/gcc/configure.ac b/gcc/configure.ac
|
||||
index b3948469d17..81c070830e2 100644
|
||||
index 57268319de1..56bcaa87620 100644
|
||||
--- a/gcc/configure.ac
|
||||
+++ b/gcc/configure.ac
|
||||
@@ -1227,6 +1227,27 @@ AC_ARG_WITH(multilib-generator,
|
||||
@@ -1199,6 +1199,27 @@ AC_ARG_WITH(multilib-generator,
|
||||
:,
|
||||
with_multilib_generator=default)
|
||||
|
||||
@@ -166,10 +166,10 @@ index b3948469d17..81c070830e2 100644
|
||||
# Checks for other programs
|
||||
# -------------------------
|
||||
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
|
||||
index 3e9e09b4ae3..6e7b756be61 100644
|
||||
index b30d3691fe6..ccc8e5dbb00 100644
|
||||
--- a/gcc/doc/install.texi
|
||||
+++ b/gcc/doc/install.texi
|
||||
@@ -2617,6 +2617,14 @@ files, but these changed header paths may conflict with some compilation
|
||||
@@ -2377,6 +2377,14 @@ files, but these changed header paths may conflict with some compilation
|
||||
environments. Enabled by default, and may be disabled using
|
||||
@option{--disable-canonical-system-headers}.
|
||||
|
||||
@@ -185,10 +185,10 @@ index 3e9e09b4ae3..6e7b756be61 100644
|
||||
Tell GCC that when the GNU C Library (glibc) is used on the target it
|
||||
will be version @var{major}.@var{minor} or later. Normally this can
|
||||
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
|
||||
index a96700c0d38..16deedca64d 100644
|
||||
index a660e33739b..6183c407a2b 100644
|
||||
--- a/gcc/doc/tm.texi
|
||||
+++ b/gcc/doc/tm.texi
|
||||
@@ -390,7 +390,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
|
||||
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
|
||||
|
||||
@defmac LINK_GCC_C_SEQUENCE_SPEC
|
||||
The sequence in which libgcc and libc are specified to the linker.
|
||||
@@ -204,10 +204,10 @@ index a96700c0d38..16deedca64d 100644
|
||||
|
||||
@defmac POST_LINK_SPEC
|
||||
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
|
||||
index eccc4d88493..4ca4c610571 100644
|
||||
index f7ab5d48a63..281540aba68 100644
|
||||
--- a/gcc/doc/tm.texi.in
|
||||
+++ b/gcc/doc/tm.texi.in
|
||||
@@ -390,7 +390,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
|
||||
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
|
||||
|
||||
@defmac LINK_GCC_C_SEQUENCE_SPEC
|
||||
The sequence in which libgcc and libc are specified to the linker.
|
||||
@@ -223,10 +223,10 @@ index eccc4d88493..4ca4c610571 100644
|
||||
|
||||
@defmac POST_LINK_SPEC
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 607c8ca1d42..e9f78f0f4c1 100644
|
||||
index 59390fd39d6..dae1dd4cf79 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1000,13 +1000,23 @@ proper position among the other output files. */
|
||||
@@ -974,13 +974,23 @@ proper position among the other output files. */
|
||||
# define ASM_DEBUG_OPTION_SPEC ""
|
||||
#endif
|
||||
|
||||
@@ -252,5 +252,5 @@ index 607c8ca1d42..e9f78f0f4c1 100644
|
||||
|
||||
#ifdef ENABLE_DEFAULT_SSP
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
From 4f26d4bfedb7f942b69ca4743f053c3a690a0b4a Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 02:18:49 -0700
|
||||
Subject: [PATCH] ada: libgnarl: adaint: fix sched.h inclusion for musl
|
||||
|
||||
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
|
||||
---
|
||||
gcc/ada/adaint.c | 6 +++++-
|
||||
gcc/ada/adaint.h | 5 +++++
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
|
||||
index 1fcfae165a7..67318e647ed 100644
|
||||
--- a/gcc/ada/adaint.c
|
||||
+++ b/gcc/ada/adaint.c
|
||||
@@ -95,6 +95,11 @@
|
||||
#include <sys/pstat.h>
|
||||
#endif
|
||||
|
||||
+#if defined (linux) || defined(__linux__)
|
||||
+#define _GNU_SOURCE 1
|
||||
+#include <sched.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef __PikeOS__
|
||||
#define __BSD_VISIBLE 1
|
||||
#endif
|
||||
@@ -3476,7 +3481,6 @@ __gnat_lwp_self (void)
|
||||
#endif
|
||||
|
||||
#if defined (__linux__)
|
||||
-#include <sched.h>
|
||||
|
||||
/* glibc versions earlier than 2.7 do not define the routines to handle
|
||||
dynamically allocated CPU sets. For these targets, we use the static
|
||||
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
|
||||
index 3df12b5f956..26a489f2b78 100644
|
||||
--- a/gcc/ada/adaint.h
|
||||
+++ b/gcc/ada/adaint.h
|
||||
@@ -40,6 +40,11 @@ extern "C" {
|
||||
#include "mingw32.h"
|
||||
#endif
|
||||
|
||||
+#if defined (linux) || defined(__linux__)
|
||||
+#define _GNU_SOURCE 1
|
||||
+#include <sched.h>
|
||||
+#endif
|
||||
+
|
||||
#include <dirent.h>
|
||||
|
||||
/* Constants used for the form parameter encoding values */
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
From 952070c1616f231a810af2da50264713d7587b48 Mon Sep 17 00:00:00 2001
|
||||
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] configure: fix detection of atomic builtins in libatomic
|
||||
configure script
|
||||
Subject: [PATCH 28/35] configure: fix detection of atomic builtins in
|
||||
libatomic configure script
|
||||
|
||||
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
|
||||
default) causes the libatomic configure script to incorrectly detect
|
||||
@@ -22,7 +22,7 @@ See:
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
|
||||
index 6db039d6e8b..2751b5c1387 100644
|
||||
index a92ae9e8309..90b579ca4d8 100644
|
||||
--- a/libatomic/configure.tgt
|
||||
+++ b/libatomic/configure.tgt
|
||||
@@ -30,6 +30,26 @@
|
||||
@@ -53,5 +53,5 @@ index 6db039d6e8b..2751b5c1387 100644
|
||||
alpha*)
|
||||
# fenv.c needs this option to generate inexact exceptions.
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+5
-5
@@ -1,15 +1,15 @@
|
||||
From 896b002a2afacb4d75d573aca4ae53b499df19cd Mon Sep 17 00:00:00 2001
|
||||
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] libstdc++: do not throw exceptions for non-C locales on musl
|
||||
targets
|
||||
Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
|
||||
musl targets
|
||||
|
||||
---
|
||||
libstdc++-v3/config/locale/generic/c_locale.cc | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
|
||||
index bfd02b5c2c6..16f9e84d66f 100644
|
||||
index 8849d78fdfa..aff467f98fe 100644
|
||||
--- a/libstdc++-v3/config/locale/generic/c_locale.cc
|
||||
+++ b/libstdc++-v3/config/locale/generic/c_locale.cc
|
||||
@@ -242,9 +242,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
@@ -23,5 +23,5 @@ index bfd02b5c2c6..16f9e84d66f 100644
|
||||
|
||||
void
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+6
-5
@@ -1,7 +1,8 @@
|
||||
From 22d69ae3e2768d301ef5a1f1b362c25cf8bf27b9 Mon Sep 17 00:00:00 2001
|
||||
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] gdc: unconditionally link libgphobos against libucontext
|
||||
Subject: [PATCH 30/35] gdc: unconditionally link libgphobos against
|
||||
libucontext
|
||||
|
||||
ref: alpine/aports#13422
|
||||
---
|
||||
@@ -9,10 +10,10 @@ ref: alpine/aports#13422
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 20f535a306a..c087bfe7cd4 100644
|
||||
index 394b105b271..bc4a77fc300 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -54382,7 +54382,7 @@ configure-target-libphobos:
|
||||
@@ -52809,7 +52809,7 @@ configure-target-libphobos:
|
||||
esac; \
|
||||
module_srcdir=libphobos; \
|
||||
rm -f no-such-file || : ; \
|
||||
@@ -22,5 +23,5 @@ index 20f535a306a..c087bfe7cd4 100644
|
||||
--srcdir=$${topdir}/$$module_srcdir \
|
||||
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+6
-6
@@ -1,7 +1,7 @@
|
||||
From dc66835022cf68085400f2eed30614c5afdc28a6 Mon Sep 17 00:00:00 2001
|
||||
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] druntime: link against libucontext on all platforms
|
||||
Subject: [PATCH 31/35] 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
|
||||
@@ -12,10 +12,10 @@ an external library for these functions.
|
||||
2 files changed, 16 deletions(-)
|
||||
|
||||
diff --git a/libphobos/configure b/libphobos/configure
|
||||
index 4f5be7d4ff4..0a48032edb4 100755
|
||||
index 925c53c5f5e..60c2a0c11c6 100755
|
||||
--- a/libphobos/configure
|
||||
+++ b/libphobos/configure
|
||||
@@ -15420,14 +15420,6 @@ fi
|
||||
@@ -15216,14 +15216,6 @@ fi
|
||||
# Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
|
||||
# "yes" for targets that have 'version = AsmExternal'.
|
||||
druntime_fiber_asm_external=no
|
||||
@@ -31,7 +31,7 @@ index 4f5be7d4ff4..0a48032edb4 100755
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing swapcontext" >&5
|
||||
$as_echo_n "checking for library containing swapcontext... " >&6; }
|
||||
diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
|
||||
index 8dd9c7da107..b61bf528a14 100644
|
||||
index 45a56f6f76a..fef6e890b1e 100644
|
||||
--- a/libphobos/m4/druntime/libraries.m4
|
||||
+++ b/libphobos/m4/druntime/libraries.m4
|
||||
@@ -220,14 +220,6 @@ AC_DEFUN([DRUNTIME_LIBRARIES_UCONTEXT],
|
||||
@@ -50,5 +50,5 @@ index 8dd9c7da107..b61bf528a14 100644
|
||||
AC_SEARCH_LIBS([swapcontext], [c ucontext], [],
|
||||
AC_MSG_ERROR([swapcontext required but not found]))
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
From ab88348da140c68e5e1142041dbe1c7b7d9c9a07 Mon Sep 17 00:00:00 2001
|
||||
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] libgnat: time_t is always 64-bit on musl libc
|
||||
Subject: [PATCH 32/35] libgnat: time_t is always 64-bit on musl libc
|
||||
|
||||
---
|
||||
gcc/ada/libgnat/s-parame.ads | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
|
||||
index 98284a4d13e..0d14f116a10 100644
|
||||
index 3d6e345a1ba..cfe0b4d3ca6 100644
|
||||
--- a/gcc/ada/libgnat/s-parame.ads
|
||||
+++ b/gcc/ada/libgnat/s-parame.ads
|
||||
@@ -101,7 +101,7 @@ package System.Parameters is
|
||||
@@ -102,7 +102,7 @@ package System.Parameters is
|
||||
-- Characteristics of time_t type --
|
||||
------------------------------------
|
||||
|
||||
@@ -21,5 +21,5 @@ index 98284a4d13e..0d14f116a10 100644
|
||||
|
||||
----------------------------------------------
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
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
|
||||
|
||||
musl does not have these since 1.2.4, we can't use the compat interfaces.
|
||||
---
|
||||
libphobos/libdruntime/core/sys/posix/config.d | 2 +-
|
||||
libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
|
||||
2 files changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/libphobos/libdruntime/core/sys/posix/config.d b/libphobos/libdruntime/core/sys/posix/config.d
|
||||
index ae6752f220e..6b80d1ff0e6 100644
|
||||
--- a/libphobos/libdruntime/core/sys/posix/config.d
|
||||
+++ b/libphobos/libdruntime/core/sys/posix/config.d
|
||||
@@ -88,7 +88,7 @@ else version (CRuntime_Musl)
|
||||
enum __REDIRECT = false;
|
||||
|
||||
// Those three are irrelevant for Musl as it always uses 64 bits off_t
|
||||
- enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
|
||||
+ enum __USE_FILE_OFFSET64 = false;
|
||||
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
|
||||
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
|
||||
|
||||
diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d b/libphobos/libdruntime/core/sys/posix/sys/mman.d
|
||||
index 0d3d517d69a..323aa0af72d 100644
|
||||
--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
|
||||
+++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
|
||||
@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
|
||||
- static if (__USE_FILE_OFFSET64)
|
||||
- alias mmap = mmap64;
|
||||
- else
|
||||
- void* mmap(void*, size_t, int, int, int, off_t);
|
||||
+ void* mmap(void*, size_t, int, int, int, off_t);
|
||||
int munmap(void*, size_t);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
--
|
||||
2.41.0
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
From cf6ba089ba26cd970962e874a3e35f020c3e921c Mon Sep 17 00:00:00 2001
|
||||
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] libgo: fix lfs64 use
|
||||
Subject: [PATCH 34/35] libgo: fix lfs64 use
|
||||
|
||||
---
|
||||
.../go/internal/syscall/unix/at_largefile.go | 2 +-
|
||||
@@ -191,5 +191,5 @@ index 180f5c31d74..1d717d55c0e 100644
|
||||
EREF(PRIO_USER);
|
||||
EREF(RUSAGE_SELF);
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
From f865fb0a27252bd3a01fc4596f101d389929311c Mon Sep 17 00:00:00 2001
|
||||
From: psykose <alice@ayaya.dev>
|
||||
Date: Mon, 29 May 2023 15:33:11 +0000
|
||||
Subject: [PATCH] libphobos: do not use LFS64 symbols
|
||||
|
||||
musl does not have these since 1.2.4, we can't use the compat interfaces.
|
||||
---
|
||||
libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d b/libphobos/libdruntime/core/sys/posix/sys/mman.d
|
||||
index b1eb9fa8107..3aee0d96319 100644
|
||||
--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
|
||||
+++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
|
||||
@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
|
||||
}
|
||||
else version (CRuntime_Musl)
|
||||
{
|
||||
- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
|
||||
- static if (__USE_FILE_OFFSET64)
|
||||
- alias mmap = mmap64;
|
||||
- else
|
||||
- void* mmap(void*, size_t, int, int, int, off_t);
|
||||
+ void* mmap(void*, size_t, int, int, int, off_t);
|
||||
int munmap(void*, size_t);
|
||||
}
|
||||
else version (CRuntime_UClibc)
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+4
-4
@@ -1,15 +1,15 @@
|
||||
From a809e7b909e16fcf3379571417d33574e9c1dbff Mon Sep 17 00:00:00 2001
|
||||
From c4f484f465a32e796ae384aa3f90e79fa218b4e9 Mon Sep 17 00:00:00 2001
|
||||
From: Jingyun Hua <huajingyun@loongson.cn>
|
||||
Date: Mon, 7 Aug 2023 15:25:58 +0800
|
||||
Subject: [PATCH] loongarch disable multilib support
|
||||
|
||||
Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>
|
||||
---
|
||||
gcc/config/loongarch/t-linux | 11 +++--------
|
||||
gcc/config/loongarch/t-linux | 11 +++--------
|
||||
1 file changed, 3 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/loongarch/t-linux b/gcc/config/loongarch/t-linux
|
||||
index 45862048abf..73155acd832 100644
|
||||
index 23e1fb979..c2753abb8 100644
|
||||
--- a/gcc/config/loongarch/t-linux
|
||||
+++ b/gcc/config/loongarch/t-linux
|
||||
@@ -21,11 +21,6 @@ MULTIOSDIR_lp64f := ../lib64/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
|
||||
@@ -28,5 +28,5 @@ index 45862048abf..73155acd832 100644
|
||||
+ MULTILIB_OSDIRNAMES += mabi.lp64f=../lib
|
||||
+ MULTILIB_OSDIRNAMES += mabi.lp64s=../lib
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
From: Celeste <cielesti@protonmail.com>
|
||||
Date: Mon, 2 Sep 2024 02:54:17 +0000
|
||||
Subject: [PATCH] libphobos: add riscv64 and loongarch64 support
|
||||
|
||||
Add musl support for these 2 architectures based on fenv.h and signal.h from:
|
||||
|
||||
https://git.musl-libc.org/cgit/musl/tree/arch/riscv64/bits?h=v1.2.5
|
||||
|
||||
https://git.musl-libc.org/cgit/musl/tree/arch/loongarch64/bits?h=v1.2.5
|
||||
---
|
||||
libphobos/libdruntime/core/stdc/fenv.d | 13 +++++++++++++
|
||||
libphobos/libdruntime/core/sys/posix/signal.d | 10 ++++++++++
|
||||
2 files changed, 23 insertions(+)
|
||||
|
||||
diff --git a/libphobos/libdruntime/core/stdc/fenv.d b/libphobos/libdruntime/core/stdc/fenv.d
|
||||
index a7364c0a..5b327e4a 100644
|
||||
--- a/libphobos/libdruntime/core/stdc/fenv.d
|
||||
+++ b/libphobos/libdruntime/core/stdc/fenv.d
|
||||
@@ -436,20 +436,33 @@ else version (CRuntime_Musl)
|
||||
ushort __cs_selector;
|
||||
ushort __opcode;
|
||||
uint __data_offset;
|
||||
ushort __data_selector;
|
||||
ushort __unused5;
|
||||
version (X86_64)
|
||||
uint __mxcsr;
|
||||
}
|
||||
alias ushort fexcept_t;
|
||||
}
|
||||
+ else version (RISCV64)
|
||||
+ {
|
||||
+ alias uint fenv_t;
|
||||
+ alias uint fexcept_t;
|
||||
+ }
|
||||
+ else version (LoongArch64)
|
||||
+ {
|
||||
+ struct fenv_t
|
||||
+ {
|
||||
+ uint __cw;
|
||||
+ }
|
||||
+ alias uint fexcept_t;
|
||||
+ }
|
||||
else
|
||||
{
|
||||
static assert(false, "Architecture not supported.");
|
||||
}
|
||||
}
|
||||
else version (CRuntime_Newlib)
|
||||
{
|
||||
version (AArch64)
|
||||
{
|
||||
alias fenv_t = ulong;
|
||||
diff --git a/libphobos/libdruntime/core/sys/posix/signal.d b/libphobos/libdruntime/core/sys/posix/signal.d
|
||||
index a8b7f751..78d8b3cd 100644
|
||||
--- a/libphobos/libdruntime/core/sys/posix/signal.d
|
||||
+++ b/libphobos/libdruntime/core/sys/posix/signal.d
|
||||
@@ -2751,20 +2751,30 @@ else version (CRuntime_Musl)
|
||||
else version (PPC_Any)
|
||||
{
|
||||
enum MINSIGSTKSZ = 4096;
|
||||
enum SIGSTKSZ = 10240;
|
||||
}
|
||||
else version (X86_Any)
|
||||
{
|
||||
enum MINSIGSTKSZ = 2048;
|
||||
enum SIGSTKSZ = 8192;
|
||||
}
|
||||
+ else version (RISCV64)
|
||||
+ {
|
||||
+ enum MINSIGSTKSZ = 2048;
|
||||
+ enum SIGSTKSZ = 8192;
|
||||
+ }
|
||||
+ else version (LoongArch64)
|
||||
+ {
|
||||
+ enum MINSIGSTKSZ = 4096;
|
||||
+ enum SIGSTKSZ = 16384;
|
||||
+ }
|
||||
else
|
||||
static assert(0, "unimplemented");
|
||||
|
||||
//ucontext_t (defined in core.sys.posix.ucontext)
|
||||
//mcontext_t (defined in core.sys.posix.ucontext)
|
||||
|
||||
version (MIPS_Any)
|
||||
{
|
||||
struct stack_t
|
||||
{
|
||||
@@ -1,113 +0,0 @@
|
||||
From 72606254a2456763cb252b4d729a9505e77e449d Mon Sep 17 00:00:00 2001
|
||||
From: Rich Felker <dalias@aerifal.cx>
|
||||
Date: Fri, 25 Jul 2025 02:41:46 -0700
|
||||
Subject: [PATCH] static PIE: ensure -static reaches the linker
|
||||
|
||||
on some targets, the logic for the compiler option -static seems not
|
||||
to be processed when -pie is present. rather than playing
|
||||
whack-a-mole, just ensure LD_PIE_SPEC specs always pass -static to ld
|
||||
if either -static or -static-pie is present on the compiler driver
|
||||
command line.
|
||||
|
||||
this may produce redundant -static arguments but it doesn't matter.
|
||||
---
|
||||
gcc/common.opt | 4 ++--
|
||||
gcc/config/gnu-user.h | 17 ++++++++---------
|
||||
gcc/gcc.cc | 6 +++---
|
||||
3 files changed, 13 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/gcc/common.opt b/gcc/common.opt
|
||||
index e65a575d9f8..7ad38711f6e 100644
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -3968,11 +3968,11 @@ Driver
|
||||
|
||||
no-pie
|
||||
Driver RejectNegative Negative(shared)
|
||||
-Don't create a dynamically linked position independent executable.
|
||||
+Don't create a position independent executable.
|
||||
|
||||
pie
|
||||
Driver RejectNegative Negative(no-pie)
|
||||
-Create a dynamically linked position independent executable.
|
||||
+Create a position independent executable.
|
||||
|
||||
static-pie
|
||||
Driver RejectNegative Negative(pie)
|
||||
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
|
||||
index 0426efdb8c3..866c8bd77f2 100644
|
||||
--- a/gcc/config/gnu-user.h
|
||||
+++ b/gcc/config/gnu-user.h
|
||||
@@ -51,13 +51,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
#define GNU_USER_TARGET_STARTFILE_SPEC \
|
||||
"%{shared:; \
|
||||
pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \
|
||||
- static:crt1.o%s; \
|
||||
- static-pie:rcrt1.o%s; \
|
||||
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
|
||||
" PIE_SPEC ":Scrt1.o%s; \
|
||||
:crt1.o%s} " \
|
||||
GNU_USER_TARGET_CRTI " \
|
||||
- %{static:crtbeginT.o%s; \
|
||||
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
|
||||
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
|
||||
+ static:crtbeginT.o%s; \
|
||||
:crtbegin.o%s} \
|
||||
%{fvtable-verify=none:%s; \
|
||||
fvtable-verify=preinit:vtv_start_preinit.o%s; \
|
||||
@@ -73,11 +72,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
GNU userspace "finalizer" file, `crtn.o'. */
|
||||
|
||||
#define GNU_USER_TARGET_ENDFILE_SPEC \
|
||||
- "%{!static:%{fvtable-verify=none:%s; \
|
||||
+ "%{static|static-pie:; \
|
||||
+ fvtable-verify=none:%s; \
|
||||
fvtable-verify=preinit:vtv_end_preinit.o%s; \
|
||||
- fvtable-verify=std:vtv_end.o%s}} \
|
||||
- %{static:crtend.o%s; \
|
||||
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
|
||||
+ fvtable-verify=std:vtv_end.o%s} \
|
||||
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
|
||||
:crtend.o%s} " \
|
||||
GNU_USER_TARGET_CRTN " " \
|
||||
CRTOFFLOADEND
|
||||
@@ -106,7 +105,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
|
||||
|
||||
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
|
||||
+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} "
|
||||
#endif
|
||||
|
||||
#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC)
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index e9f78f0f4c1..767ff65f348 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1056,7 +1056,7 @@ proper position among the other output files. */
|
||||
#define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC
|
||||
#define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;"
|
||||
#else
|
||||
-#define PIE_SPEC "pie"
|
||||
+#define PIE_SPEC "pie|static-pie"
|
||||
#define FPIE1_SPEC "fpie"
|
||||
#define NO_FPIE1_SPEC FPIE1_SPEC ":;"
|
||||
#define FPIE2_SPEC "fPIE"
|
||||
@@ -1080,12 +1080,12 @@ proper position among the other output files. */
|
||||
#ifndef LINK_PIE_SPEC
|
||||
#ifdef HAVE_LD_PIE
|
||||
#ifndef LD_PIE_SPEC
|
||||
-#define LD_PIE_SPEC "-pie"
|
||||
+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic -static}"
|
||||
#endif
|
||||
#else
|
||||
#define LD_PIE_SPEC ""
|
||||
#endif
|
||||
-#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
|
||||
+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
|
||||
#endif
|
||||
|
||||
#ifndef LINK_BUILDID_SPEC
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
From d984c5c9ed973bb7072b48399e5d9bb1f35c3123 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Pinski <quic_apinski@quicinc.com>
|
||||
Date: Fri, 28 Mar 2025 17:25:56 -0700
|
||||
Subject: [PATCH] except: Don't use the cached value of the gcc_except_table
|
||||
section for comdat functions [PR119507]
|
||||
|
||||
This has been broken since GCC started to put the comdat functions' gcc_except_table into their
|
||||
own section; r0-118218-g3e6011cfebedfb. What would happen is after a non-comdat function is processed,
|
||||
the cached value would always be used even for comdat function. Instead we should create a new
|
||||
section for comdat functions.
|
||||
|
||||
OK? Bootstrapped and tested on x86_64-linux-gnu.
|
||||
|
||||
PR middle-end/119507
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
* except.cc (switch_to_exception_section): Don't use the cached section if
|
||||
the current function is in comdat.
|
||||
|
||||
gcc/testsuite/ChangeLog:
|
||||
|
||||
* g++.dg/eh/pr119507.C: New test.
|
||||
|
||||
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
|
||||
---
|
||||
gcc/except.cc | 9 ++++++++-
|
||||
gcc/testsuite/g++.dg/eh/pr119507.C | 17 +++++++++++++++++
|
||||
2 files changed, 25 insertions(+), 1 deletion(-)
|
||||
create mode 100644 gcc/testsuite/g++.dg/eh/pr119507.C
|
||||
|
||||
diff --git a/gcc/except.cc b/gcc/except.cc
|
||||
index 205811c6567..0fe1e093489 100644
|
||||
--- a/gcc/except.cc
|
||||
+++ b/gcc/except.cc
|
||||
@@ -2949,7 +2949,14 @@ switch_to_exception_section (const char * ARG_UNUSED (fnname))
|
||||
{
|
||||
section *s;
|
||||
|
||||
- if (exception_section)
|
||||
+ if (exception_section
|
||||
+ /* Don't use the cached section for comdat if it will be different. */
|
||||
+#ifdef HAVE_LD_EH_GC_SECTIONS
|
||||
+ && !(targetm_common.have_named_sections
|
||||
+ && DECL_COMDAT_GROUP (current_function_decl)
|
||||
+ && HAVE_COMDAT_GROUP)
|
||||
+#endif
|
||||
+ )
|
||||
s = exception_section;
|
||||
else
|
||||
{
|
||||
diff --git a/gcc/testsuite/g++.dg/eh/pr119507.C b/gcc/testsuite/g++.dg/eh/pr119507.C
|
||||
new file mode 100644
|
||||
index 00000000000..50afa75a43f
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/g++.dg/eh/pr119507.C
|
||||
@@ -0,0 +1,17 @@
|
||||
+// { dg-do compile { target comdat_group } }
|
||||
+// Force off function sections
|
||||
+// Force on exceptions
|
||||
+// { dg-options "-fno-function-sections -fexceptions" }
|
||||
+// PR middle-end/119507
|
||||
+
|
||||
+
|
||||
+inline int comdat() { try { throw 1; } catch (int) { return 1; } return 0; }
|
||||
+int another_func_with_exception() { try { throw 1; } catch (int) { return 1; } return 0; }
|
||||
+inline int comdat1() { try { throw 1; } catch (int) { return 1; } return 0; }
|
||||
+int foo() { return comdat() + comdat1(); }
|
||||
+
|
||||
+// Make sure the gcc puts the exception table for both comdat and comdat1 in their own section
|
||||
+// { dg-final { scan-assembler-times ".section\[\t \]\[^\n\]*.gcc_except_table._Z6comdatv" 1 } }
|
||||
+// { dg-final { scan-assembler-times ".section\[\t \]\[^\n\]*.gcc_except_table._Z7comdat1v" 1 } }
|
||||
+// There should be 3 exception tables,
|
||||
+// { dg-final { scan-assembler-times ".section\[\t \]\[^\n\]*.gcc_except_table" 3 } }
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -1,164 +0,0 @@
|
||||
From 57eb290b3c8fc36da99213f5050b46cd93575234 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Sat, 26 Jul 2025 02:59:45 -0700
|
||||
Subject: [PATCH] ada: libgnat: use stub symbolic module name functions
|
||||
|
||||
The "linux" implementation depends on glibc internals and accordingly
|
||||
does not work on musl.
|
||||
|
||||
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
|
||||
---
|
||||
gcc/ada/Makefile.rtl | 32 ++++++++++++++++----------------
|
||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
|
||||
index cb41e6887cd..152ba70db4d 100644
|
||||
--- a/gcc/ada/Makefile.rtl
|
||||
+++ b/gcc/ada/Makefile.rtl
|
||||
@@ -1642,7 +1642,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
|
||||
s-intman.adb<libgnarl/s-intman__posix.adb \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
a-exetim.adb<libgnarl/a-exetim__posix.adb \
|
||||
a-exetim.ads<libgnarl/a-exetim__default.ads \
|
||||
s-linux.ads<libgnarl/s-linux.ads \
|
||||
@@ -2014,7 +2014,7 @@ ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-s390.ads
|
||||
|
||||
ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
|
||||
@@ -2359,7 +2359,7 @@ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
g-sercom.adb<libgnat/g-sercom__linux.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(GNATRTL_128BIT_PAIRS) \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
@@ -2407,7 +2407,7 @@ ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-mips.ads
|
||||
|
||||
ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
|
||||
@@ -2463,7 +2463,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
|
||||
s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
system.ads<libgnat/system-linux-ppc.ads
|
||||
@@ -2519,7 +2519,7 @@ ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
system.ads<libgnat/system-linux-arm.ads
|
||||
@@ -2565,7 +2565,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
$(GNATRTL_128BIT_PAIRS) \
|
||||
@@ -2607,7 +2607,7 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-sparc.ads
|
||||
|
||||
ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
|
||||
@@ -2660,7 +2660,7 @@ ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-hppa.ads
|
||||
|
||||
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
|
||||
@@ -2697,7 +2697,7 @@ ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-m68k.ads
|
||||
|
||||
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
|
||||
@@ -2734,7 +2734,7 @@ ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-sh4.ads
|
||||
|
||||
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
|
||||
@@ -2779,7 +2779,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
$(GNATRTL_128BIT_PAIRS) \
|
||||
@@ -2859,7 +2859,7 @@ ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
|
||||
$(GNATRTL_128BIT_PAIRS) \
|
||||
@@ -2904,7 +2904,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(X86_64_TARGET_PAIRS) \
|
||||
$(SIMD_PATH_TARGET_PAIRS) \
|
||||
@@ -2956,7 +2956,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
|
||||
s-taspri.ads<libgnarl/s-taspri__posix.ads \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
$(ATOMICS_TARGET_PAIRS) \
|
||||
$(X86_64_TARGET_PAIRS) \
|
||||
$(SIMD_PATH_TARGET_PAIRS) \
|
||||
@@ -3000,7 +3000,7 @@ ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
|
||||
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
|
||||
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
|
||||
$(TRASYM_DWARF_UNIX_PAIRS) \
|
||||
- s-tsmona.adb<libgnat/s-tsmona__linux.adb \
|
||||
+ s-tsmona.adb<libgnat/s-tsmona.adb \
|
||||
system.ads<libgnat/system-linux-riscv.ads
|
||||
|
||||
ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From 3e246a3de14e843b7a9b322bacb4be497e1c504b Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Sat, 26 Jul 2025 03:02:38 -0700
|
||||
Subject: [PATCH] ada: libgnat: recognize linux-musleabi and linux-muslgnueabi
|
||||
platforms for ARM
|
||||
|
||||
---
|
||||
gcc/ada/Makefile.rtl | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
|
||||
index 152ba70db4d..89574cdfba7 100644
|
||||
--- a/gcc/ada/Makefile.rtl
|
||||
+++ b/gcc/ada/Makefile.rtl
|
||||
@@ -2500,7 +2500,7 @@ endif
|
||||
|
||||
# ARM linux, GNU eabi
|
||||
ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
|
||||
-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
|
||||
+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
|
||||
|
||||
SELECTED_PAIRS=arm-linux-gnueabi
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+90
-97
@@ -24,7 +24,7 @@ CBUILDROOT="/"
|
||||
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
|
||||
pkgname=gcc-aarch64
|
||||
pkgver=15.1.1_git20250726
|
||||
pkgver=14.2.0
|
||||
# i.e. 13.2.1, must match gcc/BASE-VER
|
||||
_pkgbase="${pkgver%%_git*}"
|
||||
# date component from snapshots
|
||||
@@ -34,7 +34,7 @@ _pkgsnap="${pkgver##*_git}"
|
||||
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
|
||||
|
||||
pkgname=gcc-aarch64
|
||||
pkgrel=0
|
||||
pkgrel=5
|
||||
pkgdesc="Stage2 cross-compiler for aarch64"
|
||||
url="https://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -139,10 +139,10 @@ else
|
||||
fi
|
||||
|
||||
case "$CTARGET_ARCH" in
|
||||
# GDC hasn't been ported to PowerPC (LIBDRUNTIME_ONLY=yes)
|
||||
# GDC hasn't been ported to PowerPC
|
||||
# See libphobos/configure.tgt in GCC sources for supported targets
|
||||
# riscv fails with: error: static assert "unimplemented"
|
||||
ppc*|riscv64) LANG_D=false ;;
|
||||
ppc64le|riscv64) LANG_D=false ;;
|
||||
# GDC does currently not work on 32-bit musl architectures.
|
||||
# This is a known upstream issue.
|
||||
# See: https://github.com/dlang/druntime/pull/3383
|
||||
@@ -182,6 +182,11 @@ if $_libgomp; then
|
||||
subpackages="$subpackages libgomp::$CTARGET_ARCH"
|
||||
fi
|
||||
|
||||
case "$CTARGET_ARCH" in
|
||||
riscv64|loongarch64)
|
||||
LANG_ADA=false;;
|
||||
esac
|
||||
|
||||
_languages=c
|
||||
if $LANG_CXX; then
|
||||
_languages="$_languages,c++"
|
||||
@@ -224,6 +229,7 @@ fi
|
||||
if $LANG_JIT; then
|
||||
subpackages="$subpackages libgccjit:jit libgccjit-dev:jitdev"
|
||||
fi
|
||||
makedepends="$makedepends_build $makedepends_host"
|
||||
|
||||
# when using upstream releases, use this URI template
|
||||
# https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
|
||||
@@ -236,7 +242,7 @@ fi
|
||||
# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches,
|
||||
# so that they can be properly tracked and easily rebased if needed.
|
||||
#source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz
|
||||
source="https://gcc.gnu.org/pub/gcc/snapshots/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz
|
||||
source="https://gcc.gnu.org/pub/gcc/releases/gcc-$_pkgbase/gcc-$_pkgbase.tar.xz
|
||||
0001-posix_memalign.patch
|
||||
0002-gcc-poison-system-directories.patch
|
||||
0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -244,40 +250,38 @@ source="https://gcc.gnu.org/pub/gcc/snapshots/${_pkgbase%%.*}-$_pkgsnap/gcc-${_p
|
||||
0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
|
||||
0006-Enable-Wformat-and-Wformat-security-by-default.patch
|
||||
0007-Enable-Wtrampolines-by-default.patch
|
||||
0008-gcc-disable-SSP-on-ffreestanding-nostdlib-and-nodefa.patch
|
||||
0009-gcc-params-set-default-ssp-buffer-size-to-4.patch
|
||||
0010-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
0011-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
0012-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
0013-libgcc_s.patch
|
||||
0014-nopie.patch
|
||||
0015-ada-fix-shared-linking.patch
|
||||
0016-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
0017-add-fortify-headers-paths.patch
|
||||
0018-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
0019-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
0020-aarch64-disable-multilib-support.patch
|
||||
0021-s390x-disable-multilib-support.patch
|
||||
0022-ppc64-le-disable-multilib-support.patch
|
||||
0023-x86_64-disable-multilib-support.patch
|
||||
0024-riscv-disable-multilib-support.patch
|
||||
0025-always-build-libgcc_eh.a.patch
|
||||
0026-ada-libgnarl-remove-use-of-glibc-specific-pthread_rw.patch
|
||||
0027-ada-libgnarl-use-posix_openpt-instead-of-glibc-speci.patch
|
||||
0028-ada-libgnarl-adaint-fix-sched.h-inclusion-for-musl.patch
|
||||
0029-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
0030-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
0031-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
0032-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
0033-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
0034-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
0035-libphobos-do-not-use-LFS64-symbols.patch
|
||||
0036-libgo-fix-lfs64-use.patch
|
||||
0037-loongarch-disable-multilib-support.patch
|
||||
0038-static-PIE-ensure-static-reaches-the-linker.patch
|
||||
0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
|
||||
0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
|
||||
0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
|
||||
0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
|
||||
0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
0011-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
0012-libgcc_s.patch
|
||||
0013-nopie.patch
|
||||
0014-ada-fix-shared-linking.patch
|
||||
0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
0016-add-fortify-headers-paths.patch
|
||||
0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
0019-aarch64-disable-multilib-support.patch
|
||||
0020-s390x-disable-multilib-support.patch
|
||||
0021-ppc64-le-disable-multilib-support.patch
|
||||
0022-x86_64-disable-multilib-support.patch
|
||||
0023-riscv-disable-multilib-support.patch
|
||||
0024-always-build-libgcc_eh.a.patch
|
||||
0025-ada-libgnarl-compatibility-for-musl.patch
|
||||
0026-ada-musl-support-fixes.patch
|
||||
0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
0031-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
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
|
||||
0035-loongarch-disable-multilib-support.patch
|
||||
0036-libphobos-add-riscv64-and-loongarch64-support.patch
|
||||
fix-arm64.patch
|
||||
ppc64le-quadmath.patch
|
||||
riscv64-improve-build-time.patch
|
||||
"
|
||||
|
||||
# secfixes:
|
||||
@@ -285,10 +289,10 @@ source="https://gcc.gnu.org/pub/gcc/snapshots/${_pkgbase%%.*}-$_pkgsnap/gcc-${_p
|
||||
# - CVE-2023-4039
|
||||
|
||||
# we build out-of-tree
|
||||
builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
|
||||
#builddir="$srcdir"/gcc-$_pkgbase
|
||||
_gcclibdir="usr/lib/gcc/$CTARGET/$_pkgbase"
|
||||
_gcclibexec="usr/libexec/gcc/$CTARGET/$_pkgbase"
|
||||
#builddir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
|
||||
builddir="$srcdir"/gcc-$_pkgbase
|
||||
_gcclibdir="/usr/lib/gcc/$CTARGET/$_pkgbase"
|
||||
_gcclibexec="/usr/libexec/gcc/$CTARGET/$_pkgbase"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
@@ -299,7 +303,6 @@ build() {
|
||||
local _arch_configure=
|
||||
local _bootstrap_configure=
|
||||
local _jit_configure=
|
||||
local _sanitizer_configure=
|
||||
|
||||
case "$CTARGET" in
|
||||
aarch64-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64";;
|
||||
@@ -316,11 +319,7 @@ build() {
|
||||
i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
|
||||
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
|
||||
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
|
||||
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
|
||||
esac
|
||||
|
||||
case "$CTARGET_ARCH" in
|
||||
*) _sanitizer_configure="--disable-libsanitizer" ;;
|
||||
loongarch64-*-*-*) _arch_configure="--with-arch=la64v1.0 --with-abi=lp64d";;
|
||||
esac
|
||||
|
||||
case "$CTARGET_ARCH" in
|
||||
@@ -388,7 +387,7 @@ build() {
|
||||
--enable-linker-build-id
|
||||
$_arch_configure
|
||||
--disable-libssp
|
||||
$_sanitizer_configure
|
||||
--disable-libsanitizer
|
||||
$_cross_configure
|
||||
$_bootstrap_configure
|
||||
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
|
||||
@@ -432,11 +431,6 @@ package() {
|
||||
[ "$CHOST" = "$CTARGET" ] && ln -s gcc "$pkgdir"/usr/bin/cc
|
||||
ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
|
||||
|
||||
# symlink to vendor-less target triple for
|
||||
# supporting clang --target's fallback match
|
||||
# ref: https://gitlab.alpinelinux.org/alpine/aports/-/issues/16828
|
||||
ln -s "$CTARGET" "$pkgdir/usr/lib/gcc/${CTARGET%%-*}-${CTARGET#*-*-}"
|
||||
|
||||
if $LANG_JIT; then
|
||||
make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common
|
||||
fi
|
||||
@@ -667,6 +661,7 @@ libgo() {
|
||||
go() {
|
||||
pkgdesc="GCC Go frontend (intended for bootstrapping community/go)"
|
||||
depends="gcc=$_gccrel libgo=$_gccrel !go"
|
||||
install="$pkgname-go.post-install"
|
||||
|
||||
amove usr/lib/go
|
||||
amove usr/bin/*go
|
||||
@@ -750,46 +745,44 @@ gdb() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
21ce5eecd75db4c038389f8c77f985bc58e71d1b2def86fc7b117aa9bbf76885f16fb40d4774aacdf03a6e67a91c26f6ae276256f33a100aedcda18f21e54a0e gcc-15-20250726.tar.xz
|
||||
fd5cebc5deb1d588583424acbc1b5a6d8d6f5b1bfa9f4bdbc082cfd406723f423d87011ee30e04ed18128a7ed8021cbfc9262becff5419125dc1afb6f407defa 0001-posix_memalign.patch
|
||||
6634004cb9feea9ee0d063d6b6984d7db3b10c692b6139bb99169a4f2d74f0e10b5ca0ab31ce346ffef34b8eb9c3f536aa4d94bce1b27f8e0b8a9fc5cc4b7057 0002-gcc-poison-system-directories.patch
|
||||
37e089791dbcbad73af866b662cda611dc0970d93e28251c7a9aa898db3b96446654e8b778d7866eb8550ba7f4a57cf22e8514d562bfed0c66613e65550d9c85 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
d4d5bfeb20a9fac968f37497d86d7eff4a9ac863e015dadbffae24c08236f5efde69b615d95191e2546672ce2d4b30d3627528c64a83fc64b715e8fa6fd4c372 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
|
||||
b77cd1ee887fc52afee2fafd2d338f70a62c115017aa4fcb0ab9cf82b8a003794f75b7913cc153c767c351d2be8e1e7c113f893edee818217f20cad3cb6a2e66 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
|
||||
af634de360e8b7aef285702815affb16da667719b786848ccdb9e4cca2a27826793f64c903a32a5d8ba1953965a5cc8999c58e2b6ce9ef36f74807e495cc9e42 0006-Enable-Wformat-and-Wformat-security-by-default.patch
|
||||
21ad1cd4b7ef652ddaf6b9fb8071a87ec2fc694e8c420a79baf456347b8e1db5930a914c92a375943dda63d096c4823a2b8028d02a5b49c9bcdab5c170558004 0007-Enable-Wtrampolines-by-default.patch
|
||||
dcd07ecf0daad8743a378abbcb921d4b17e528651a596454956563a3417fe9ea3b88dce7b15b9270f55ae2ea2a72efe8a7215236d0a21e2942c7c5ba0e8e2c39 0008-gcc-disable-SSP-on-ffreestanding-nostdlib-and-nodefa.patch
|
||||
488bd530e209e3213f83d695fb2ac529c408e3dba9024457594cfb0d266acb079447bca184fbf136bacd1f1ec5ca3607dc4998b66630af9781ea7ee41c16236b 0009-gcc-params-set-default-ssp-buffer-size-to-4.patch
|
||||
7229a3fe655e8460148e0cd4c39d7362e713d1a6215530547f346371a5e3647245123637e8b075c58c5e7e35c823d96a0b3cdbedb6c07b5095507b4499bc053a 0010-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
|
||||
f7c1870bda4d418380f471b520b7cf20fde743f57415323c1a8898a815f8c7023adc3882e1d0453c5b6fcb65a27a9534fdeb297bf451453a95d90c0395e42c3b 0011-Don-t-declare-asprintf-if-defined-as-a-macro.patch
|
||||
140c8165726404da0fc0ea01add2a7fa307377817968177334c520bdaabc23e8ec5d76f80337b89ff03edfd52dead7119433a03d2165e24780dc944633a9c2a3 0012-libiberty-copy-PIC-objects-during-build-process.patch
|
||||
af848ef58b63a7592ad0f549be65fbe8dcd3c1e5ea9f30cfa65be02519ca9826d7612131c3b0042615b7537683d74eeb6849aba61810b0d8ed1c79f968188260 0013-libgcc_s.patch
|
||||
c97b473c08b46090b48764af55b244ec70a13d26f2d881c57761abbc4a1c481da9766f33e59daee7188bc06c4631e53becbaf8801d0b35ca0b5fe84cb6a840f7 0014-nopie.patch
|
||||
9c37cc38bb7238058751d3ff60712acd4134aa4c28d946c453b8b230bd6ba34c45c47a4b4d7e74aa7e3ed8dfc74cbb1d5a328bda706dd3037320e02a15421b86 0015-ada-fix-shared-linking.patch
|
||||
b4afb30431ecdfd86acfd66ba857c275628b55e91cc9b21c18ca0e795b2fadfe895da801978a8e818ff9c93144075e72cf0521f3bce5c6c1d44e47e1b77b8ba4 0016-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
|
||||
6260341ed13926ce449cf351ada85d8e28fc7da63a4ae73b69c24fb2e8d0e3003ffacb1bb0f957185b8d5d7e013f777f7f696c9a1c94b2204a9b3e8274ec2f43 0017-add-fortify-headers-paths.patch
|
||||
8fe954daf7e9b1d221f0536f54186bc1715e23cf3c74dfd0956c0fa22ce3b5b5e30b5e17ea584db1cc193ac7fdc72daff68c9163dbc46a837e01d25a7a4a90e0 0018-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
|
||||
fc5ce12cd70382b15317931ff0f57ae1ed10e8c09dbf2fee627bc55a268f55ebbf9ae32b89b4ef6f51e9a9b7ca32eed201245d481cde88f6eb572d40134f5f4c 0019-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
|
||||
e0d4fd0e0bf4ecfb517b60b55d73f326deda0faa75bfd07d1fcae116f91088a96caaa2dd20e2e38a93cc8ffed0aef422c0c861879c8de406364faef0cbcd50ff 0020-aarch64-disable-multilib-support.patch
|
||||
7af318ea6fe14dce98b8db1f8f46a2dc9f75c2f27e63a52c62c7b47d6d62cb64748d5c2690eba772d931ff96ac089e3f03bf46b49122ffb5a03a1c186f01ae11 0021-s390x-disable-multilib-support.patch
|
||||
b96dbbd0e1aa98ebc2e7eaa2a44912681e4c8bc9a129fafa53a943d67b62451b6d4fad53f92429cd4346a753527359c8c09d58836cf0968a56f5fe933496a412 0022-ppc64-le-disable-multilib-support.patch
|
||||
60106cb08f27c89509ba46dc2ff0edecc1f4c7973874c85047dfdd67eabe50e3a852d7540002a09bcb6185c786a5daeba7915958c441fc92d7f16a0cce5bcdea 0023-x86_64-disable-multilib-support.patch
|
||||
d55d65242af9341eef7f1e3d03fec2e2de75632a23ed83df4fe6304619f62127b42eba9d9286f7f3647e3b9bd95aaeb79023263e71ff9d58c47f3051b73d8bc2 0024-riscv-disable-multilib-support.patch
|
||||
b6dda179cafbd9e7f3ef7e137b303a76491a0157d68f1504dee6611cecdca16d27ca32cbd2298da2f6301e7167b8730d70a775ee5ba88ae3773adef8421efa98 0025-always-build-libgcc_eh.a.patch
|
||||
95245b6548ddca5065bac06131294028767a32740c80f707a4d1cf8653a0398305ec68e7c44a3f2912741b792d41048f03729657b0a1c1a2a7bff097c6b2fdc7 0026-ada-libgnarl-remove-use-of-glibc-specific-pthread_rw.patch
|
||||
ff6b8b9e1ab9b45d1853e74befb5c904cf7cd83dadb5a4b6f8c94a75e6249d1cdaa72aef73d6b1045beabc2d9012ea869d886015ec3aae561eb4ba8b9d00c2d7 0027-ada-libgnarl-use-posix_openpt-instead-of-glibc-speci.patch
|
||||
0582f00e8801df06e51fca45a8dc3ee62e9b6ce9245af98937f435c90c709edc7eb9071569c0e59c9a143d964fe5731b9e11b011174443b97043abddc9db1cce 0028-ada-libgnarl-adaint-fix-sched.h-inclusion-for-musl.patch
|
||||
8683314212c0a6f49ed45ea8c74908f59d863822fa8c99e94c7e39ba3a642ca6a3167543e1ae4b58d8acd1ff97824d6e60cc432b19e6580cad2027e3a5c37603 0029-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
60bb67f6cf4b92243dec861fba702aa5847925bf413c2c83705a0ee4ebe4c523cc295cce29666c69c9b2dec70d63def83cd9074e613b4f46e014248f53c87db4 0030-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
b49f72cce409f74407761fe64b028e97d58e4f236af7d9099189a8553f2ece3f30559760fab768f3d1fc4c7f89ae3ee6d687018251f3df52c9a43817c9c7c93e 0031-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
0bd3aa81590d5f47205e193d2998bb5986cbb82adb75e3d39dcf820625bb358d380d1695ebbb18437fdd935ce350b0f5b7364a5fa7c8e07ebe8f972c8cd46cd1 0032-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
e8d5c4159f41fcb09e76758768d127ff366c93095137b694a405e9dbba88f2036ba64b69ac6c5c75e488be3281a1227cccbadcea2bef6f60ba0be7fc3d7db754 0033-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
6f530cdb1935296925ec29be7a30e4d69cebc155695db6ea30ee95ce65de7e8917e2a6148d3668974715120e7f13f734e5c36bfd35f707f4725a7556cbc1caa5 0034-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
1dabb0c8d581ec86d8758dfa3d2f1713d915f6d927639f56b3590ed9b0885dfdf452e30ca87edac49721d2dc43d4fbdb4d178f8448e8ba5cc595457f216bf210 0035-libphobos-do-not-use-LFS64-symbols.patch
|
||||
b915a0eaf7cc3e48f41f31ebbd9142760891b9ede304ff3f1dc7166f85a9e3f82017a17bb7e65824d3da07445b2c8bcd156a992eed92633362c08329b04b6cb4 0036-libgo-fix-lfs64-use.patch
|
||||
0164467e66719187b6041c8d2d717a9bcd5b8c801dab6391b0e503c41e26518cc78389c97bdd2b2bc64f660f95410439aaa8a20799ec01eab17e7ba415ac1dd9 0037-loongarch-disable-multilib-support.patch
|
||||
2cae2cb470b2cf469973c0ff3a7a020960cf4325502ff6c84c6b1b3514c8cacfae8452b5c79b55e657b0877fc9d81cc68db6f650156ca6d1376c1bd1a2290d8b 0038-static-PIE-ensure-static-reaches-the-linker.patch
|
||||
7d73041566678fc86885877d8315481bf358858cbe54227356d5ab48623e435426ac7ff6e54d21b9fee4cc73e3f4bc7ef646d3e4ab1970e524c890cd1f735905 0039-except-Don-t-use-the-cached-value-of-the-gcc_except_.patch
|
||||
4556ead97907ec76aaa7dde450e4b6068f87268c49168eeb2af0c3df1dfa312b0a4a947b65b11fd413dae9af0beb3ef002d077c0d7f43b0bc466d3cd4348e657 0040-ada-libgnat-use-stub-symbolic-module-name-functions.patch
|
||||
389eacbeba976a461af3d087d732d1c4f2a38bc5db91b935149e60ad4b210286ba76688b8a947d00f324566b6789152bf3b93a188fa2fb7ee8042786df483fed 0041-ada-libgnat-recognize-linux-musleabi-and-linux-muslg.patch
|
||||
932bdef0cda94bacedf452ab17f103c0cb511ff2cec55e9112fc0328cbf1d803b42595728ea7b200e0a057c03e85626f937012e49a7515bc5dd256b2bf4bc396 gcc-14.2.0.tar.xz
|
||||
1ecffba1b07d60e1b4422302b032bbea918b674c8e12b30aa6965b544d700ce86b61e9f7b8d402c6caf59257f491a394dd0912f0948565d6eae9335ee54f3b35 0001-posix_memalign.patch
|
||||
1d102a7b17683909dde4d8591dd889149299e77a2b2003cdc0635dc816666be940e41ae534b469485391a9bed183cd5cd337f130e4e1ecb62cb9ad86c4a081db 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
|
||||
91dde3079c1400c124ab5604597f5857185d075809649603aa3641a4581b34029bfcbd4281a5bd925d1c5e6e3b1f5f3322efda34345c6930652d685a6c9525f4 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
|
||||
abf845792433a21fed5dd06167b9f6cf5e8f8026a409acce93824e466c5148e192bf5f404a271931fe4b65283499329bf67bb01019f2f3e02501f20619404e6c 0023-riscv-disable-multilib-support.patch
|
||||
ab88a2f63e3545bbc36537aa9a86f2c6c35e41bbf702d6e13743a405cdac4f901eed5737189b780da96647fea9f5d863fdc76373f25a00064106dcb5514d6d87 0024-always-build-libgcc_eh.a.patch
|
||||
8fdbe0c8bf4ca60f458a33e59027de03d15ac91933fe46d8ca62119346d20b9bc2447c0bf22bceb63d0cf8613ab61512d9197f4e6c2224af473b63ef9f254295 0025-ada-libgnarl-compatibility-for-musl.patch
|
||||
684bf2db12aa45e8db7a895ab0f227b4e4351f611b4fcc6e1745d7ad94d31b3554f39d8cf9e2203520b3c6ee35cf309b417d4a842e7a8cd55a2b2accb23f2f24 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
|
||||
65df1d489e8d07a811f39e27fd29e3b2b4164fbc2c5fdc16a5142886d94a96e3fb28ccf4f20dd297ba6540ef8ea1ac3eb65a4279494639bf2f0f8376a3896cc3 0035-loongarch-disable-multilib-support.patch
|
||||
06f64544fd8bc4b6c8b06410c5198aa8fb4e82c232afc0cad83b2c69ac5d39399968206defa78297222700cd18e7fd7e8244afa76d343406a01f657c86306453 0036-libphobos-add-riscv64-and-loongarch64-support.patch
|
||||
00319c9770362520e8e93bd03fda1769dfa3622eba77d620e11d8af45a38e6d804a5e924046ae388e1cfaea605696e89c343fca507aaaa5edd58d80744fff14f fix-arm64.patch
|
||||
815265826742400f86336f0c2d3e4edc37398dbc6505ee81107c0103c13ac0f406cff851438d2323033c6c6d0c0323765ee15b975eab8d1dd465f9e988168fb9 ppc64le-quadmath.patch
|
||||
ea55e0fa6813fc95c4ca2e87f059182edc54dc61515ebb92bf6eb31dbbd176d0fe81edcc7ea28d32f84ca37e8d48a544623d3d9bc94aa41ffc0859326a616aa2 riscv64-improve-build-time.patch
|
||||
"
|
||||
@@ -0,0 +1,544 @@
|
||||
From 2894660df1292153632edbc2a5b66eaf6a864660 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Sandiford <richard.sandiford@arm.com>
|
||||
Date: Thu, 13 Jun 2024 12:48:21 +0100
|
||||
Subject: [PATCH 1/4] aarch64: Fix invalid nested subregs [PR115464]
|
||||
|
||||
The testcase extracts one arm_neon.h vector from a pair (one subreg)
|
||||
and then reinterprets the result as an SVE vector (another subreg).
|
||||
Each subreg makes sense individually, but we can't fold them together
|
||||
into a single subreg: it's 32 bytes -> 16 bytes -> 16*N bytes,
|
||||
but the interpretation of 32 bytes -> 16*N bytes depends on
|
||||
whether N==1 or N>1.
|
||||
|
||||
Since the second subreg makes sense individually, simplify_subreg
|
||||
should bail out rather than ICE on it. simplify_gen_subreg will
|
||||
then do the same (because it already checks validate_subreg).
|
||||
This leaves simplify_gen_subreg returning null, requiring the
|
||||
caller to take appropriate action.
|
||||
|
||||
I think this is relatively likely to occur elsewhere, so the patch
|
||||
adds a helper for forcing a subreg, allowing a temporary pseudo to
|
||||
be created where necessary.
|
||||
|
||||
I'll follow up by using force_subreg in more places. This patch
|
||||
is intended to be a minimal backportable fix for the PR.
|
||||
|
||||
gcc/
|
||||
PR target/115464
|
||||
* simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
|
||||
to fold two subregs together if their relationship isn't known
|
||||
at compile time.
|
||||
* explow.h (force_subreg): Declare.
|
||||
* explow.cc (force_subreg): New function.
|
||||
* config/aarch64/aarch64-sve-builtins-base.cc
|
||||
(svset_neonq_impl::expand): Use it instead of simplify_gen_subreg.
|
||||
|
||||
gcc/testsuite/
|
||||
PR target/115464
|
||||
* gcc.target/aarch64/sve/acle/general/pr115464.c: New test.
|
||||
|
||||
(cherry picked from commit 0970ff46ba6330fc80e8736fc05b2eaeeae0b6a0)
|
||||
---
|
||||
gcc/config/aarch64/aarch64-sve-builtins-base.cc | 2 +-
|
||||
gcc/explow.cc | 15 +++++++++++++++
|
||||
gcc/explow.h | 2 ++
|
||||
gcc/simplify-rtx.cc | 5 +++++
|
||||
.../aarch64/sve/acle/general/pr115464.c | 13 +++++++++++++
|
||||
5 files changed, 36 insertions(+), 1 deletion(-)
|
||||
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
index 0d2edf3f19e..c9182594bc1 100644
|
||||
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
@@ -1174,7 +1174,7 @@ public:
|
||||
Advanced SIMD argument as an SVE vector. */
|
||||
if (!BYTES_BIG_ENDIAN
|
||||
&& is_undef (CALL_EXPR_ARG (e.call_expr, 0)))
|
||||
- return simplify_gen_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
|
||||
+ return force_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
|
||||
|
||||
rtx_vector_builder builder (VNx16BImode, 16, 2);
|
||||
for (unsigned int i = 0; i < 16; i++)
|
||||
diff --git a/gcc/explow.cc b/gcc/explow.cc
|
||||
index 8e5f6b8e680..f6843398c4b 100644
|
||||
--- a/gcc/explow.cc
|
||||
+++ b/gcc/explow.cc
|
||||
@@ -745,6 +745,21 @@ force_reg (machine_mode mode, rtx x)
|
||||
return temp;
|
||||
}
|
||||
|
||||
+/* Like simplify_gen_subreg, but force OP into a new register if the
|
||||
+ subreg cannot be formed directly. */
|
||||
+
|
||||
+rtx
|
||||
+force_subreg (machine_mode outermode, rtx op,
|
||||
+ machine_mode innermode, poly_uint64 byte)
|
||||
+{
|
||||
+ rtx x = simplify_gen_subreg (outermode, op, innermode, byte);
|
||||
+ if (x)
|
||||
+ return x;
|
||||
+
|
||||
+ op = copy_to_mode_reg (innermode, op);
|
||||
+ return simplify_gen_subreg (outermode, op, innermode, byte);
|
||||
+}
|
||||
+
|
||||
/* If X is a memory ref, copy its contents to a new temp reg and return
|
||||
that reg. Otherwise, return X. */
|
||||
|
||||
diff --git a/gcc/explow.h b/gcc/explow.h
|
||||
index 16aa02cfb68..cbd1fcb7eb3 100644
|
||||
--- a/gcc/explow.h
|
||||
+++ b/gcc/explow.h
|
||||
@@ -42,6 +42,8 @@ extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
|
||||
Args are mode (in case value is a constant) and the value. */
|
||||
extern rtx force_reg (machine_mode, rtx);
|
||||
|
||||
+extern rtx force_subreg (machine_mode, rtx, machine_mode, poly_uint64);
|
||||
+
|
||||
/* Return given rtx, copied into a new temp reg if it was in memory. */
|
||||
extern rtx force_not_mem (rtx);
|
||||
|
||||
diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
|
||||
index dceaa13333c..729d408aa55 100644
|
||||
--- a/gcc/simplify-rtx.cc
|
||||
+++ b/gcc/simplify-rtx.cc
|
||||
@@ -7612,6 +7612,11 @@ simplify_context::simplify_subreg (machine_mode outermode, rtx op,
|
||||
poly_uint64 innermostsize = GET_MODE_SIZE (innermostmode);
|
||||
rtx newx;
|
||||
|
||||
+ /* Make sure that the relationship between the two subregs is
|
||||
+ known at compile time. */
|
||||
+ if (!ordered_p (outersize, innermostsize))
|
||||
+ return NULL_RTX;
|
||||
+
|
||||
if (outermode == innermostmode
|
||||
&& known_eq (byte, 0U)
|
||||
&& known_eq (SUBREG_BYTE (op), 0))
|
||||
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
|
||||
new file mode 100644
|
||||
index 00000000000..d728d1325ed
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
|
||||
@@ -0,0 +1,13 @@
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+#include <arm_neon.h>
|
||||
+#include <arm_sve.h>
|
||||
+#include <arm_neon_sve_bridge.h>
|
||||
+
|
||||
+svuint16_t
|
||||
+convolve4_4_x (uint16x8x2_t permute_tbl)
|
||||
+{
|
||||
+ return svset_neonq_u16 (svundef_u16 (), permute_tbl.val[1]);
|
||||
+}
|
||||
+
|
||||
+/* { dg-final { scan-assembler {\tmov\tz0\.d, z1\.d\n} } } */
|
||||
--
|
||||
2.46.0
|
||||
|
||||
|
||||
From 7edecb21012d88902c60d38f5865bc254eaa9c55 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Sandiford <richard.sandiford@arm.com>
|
||||
Date: Tue, 18 Jun 2024 12:22:30 +0100
|
||||
Subject: [PATCH 2/4] aarch64: Use force_subreg in more places
|
||||
|
||||
This patch makes the aarch64 code use force_subreg instead of
|
||||
simplify_gen_subreg in more places. The criteria were:
|
||||
|
||||
(1) The code is obviously specific to expand (where new pseudos
|
||||
can be created).
|
||||
|
||||
(2) The value is obviously an rvalue rather than an lvalue.
|
||||
|
||||
(3) The offset wasn't a simple lowpart or highpart calculation;
|
||||
a later patch will deal with those.
|
||||
|
||||
gcc/
|
||||
* config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin):
|
||||
Use force_subreg instead of simplify_gen_subreg.
|
||||
* config/aarch64/aarch64-simd.md (ctz<mode>2): Likewise.
|
||||
* config/aarch64/aarch64-sve-builtins-base.cc
|
||||
(svget_impl::expand): Likewise.
|
||||
(svget_neonq_impl::expand): Likewise.
|
||||
* config/aarch64/aarch64-sve-builtins-functions.h
|
||||
(multireg_permute::expand): Likewise.
|
||||
|
||||
(cherry picked from commit 1474a8eead4ab390e59ee014befa8c40346679f4)
|
||||
---
|
||||
gcc/config/aarch64/aarch64-builtins.cc | 4 ++--
|
||||
gcc/config/aarch64/aarch64-simd.md | 4 ++--
|
||||
gcc/config/aarch64/aarch64-sve-builtins-base.cc | 8 +++-----
|
||||
gcc/config/aarch64/aarch64-sve-builtins-functions.h | 6 +++---
|
||||
4 files changed, 10 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
|
||||
index 75d21de1401..b2e46a073a8 100644
|
||||
--- a/gcc/config/aarch64/aarch64-builtins.cc
|
||||
+++ b/gcc/config/aarch64/aarch64-builtins.cc
|
||||
@@ -2510,12 +2510,12 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
|
||||
rtx temp2 = gen_reg_rtx (DImode);
|
||||
temp1 = simplify_gen_subreg (d->mode, op2, quadmode,
|
||||
subreg_lowpart_offset (d->mode, quadmode));
|
||||
- temp1 = simplify_gen_subreg (V2DImode, temp1, d->mode, 0);
|
||||
+ temp1 = force_subreg (V2DImode, temp1, d->mode, 0);
|
||||
if (BYTES_BIG_ENDIAN)
|
||||
emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const0_rtx));
|
||||
else
|
||||
emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const1_rtx));
|
||||
- op2 = simplify_gen_subreg (d->mode, temp2, GET_MODE (temp2), 0);
|
||||
+ op2 = force_subreg (d->mode, temp2, GET_MODE (temp2), 0);
|
||||
|
||||
/* And recalculate the index. */
|
||||
lane -= nunits / 4;
|
||||
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
|
||||
index 33ab0741e87..5b9efe0b165 100644
|
||||
--- a/gcc/config/aarch64/aarch64-simd.md
|
||||
+++ b/gcc/config/aarch64/aarch64-simd.md
|
||||
@@ -412,8 +412,8 @@
|
||||
"TARGET_SIMD"
|
||||
{
|
||||
emit_insn (gen_bswap<mode>2 (operands[0], operands[1]));
|
||||
- rtx op0_castsi2qi = simplify_gen_subreg(<VS:VSI2QI>mode, operands[0],
|
||||
- <MODE>mode, 0);
|
||||
+ rtx op0_castsi2qi = force_subreg (<VS:VSI2QI>mode, operands[0],
|
||||
+ <MODE>mode, 0);
|
||||
emit_insn (gen_aarch64_rbit<VS:vsi2qi> (op0_castsi2qi, op0_castsi2qi));
|
||||
emit_insn (gen_clz<mode>2 (operands[0], operands[0]));
|
||||
DONE;
|
||||
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
index c9182594bc1..2c95da79572 100644
|
||||
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
@@ -1121,9 +1121,8 @@ public:
|
||||
expand (function_expander &e) const override
|
||||
{
|
||||
/* Fold the access into a subreg rvalue. */
|
||||
- return simplify_gen_subreg (e.vector_mode (0), e.args[0],
|
||||
- GET_MODE (e.args[0]),
|
||||
- INTVAL (e.args[1]) * BYTES_PER_SVE_VECTOR);
|
||||
+ return force_subreg (e.vector_mode (0), e.args[0], GET_MODE (e.args[0]),
|
||||
+ INTVAL (e.args[1]) * BYTES_PER_SVE_VECTOR);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1157,8 +1156,7 @@ public:
|
||||
e.add_fixed_operand (indices);
|
||||
return e.generate_insn (icode);
|
||||
}
|
||||
- return simplify_gen_subreg (e.result_mode (), e.args[0],
|
||||
- GET_MODE (e.args[0]), 0);
|
||||
+ return force_subreg (e.result_mode (), e.args[0], GET_MODE (e.args[0]), 0);
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-functions.h b/gcc/config/aarch64/aarch64-sve-builtins-functions.h
|
||||
index 3b8e575e98e..7d06a57ff83 100644
|
||||
--- a/gcc/config/aarch64/aarch64-sve-builtins-functions.h
|
||||
+++ b/gcc/config/aarch64/aarch64-sve-builtins-functions.h
|
||||
@@ -639,9 +639,9 @@ public:
|
||||
{
|
||||
machine_mode elt_mode = e.vector_mode (0);
|
||||
rtx arg = e.args[0];
|
||||
- e.args[0] = simplify_gen_subreg (elt_mode, arg, GET_MODE (arg), 0);
|
||||
- e.args.safe_push (simplify_gen_subreg (elt_mode, arg, GET_MODE (arg),
|
||||
- GET_MODE_SIZE (elt_mode)));
|
||||
+ e.args[0] = force_subreg (elt_mode, arg, GET_MODE (arg), 0);
|
||||
+ e.args.safe_push (force_subreg (elt_mode, arg, GET_MODE (arg),
|
||||
+ GET_MODE_SIZE (elt_mode)));
|
||||
}
|
||||
return e.use_exact_insn (icode);
|
||||
}
|
||||
--
|
||||
2.46.0
|
||||
|
||||
|
||||
From 0ab664f41762803a72e5e99025b0512cad493985 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Sandiford <richard.sandiford@arm.com>
|
||||
Date: Tue, 18 Jun 2024 12:22:31 +0100
|
||||
Subject: [PATCH 3/4] aarch64: Add some uses of force_lowpart_subreg
|
||||
|
||||
This patch makes more use of force_lowpart_subreg, similarly
|
||||
to the recent patch for force_subreg. The criteria were:
|
||||
|
||||
(1) The code is obviously specific to expand (where new pseudos
|
||||
can be created).
|
||||
|
||||
(2) The value is obviously an rvalue rather than an lvalue.
|
||||
|
||||
gcc/
|
||||
PR target/115464
|
||||
* config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin)
|
||||
(aarch64_expand_rwsr_builtin): Use force_lowpart_subreg instead of
|
||||
simplify_gen_subreg and lowpart_subreg.
|
||||
* config/aarch64/aarch64-sve-builtins-base.cc
|
||||
(svset_neonq_impl::expand): Likewise.
|
||||
* config/aarch64/aarch64-sve-builtins-sme.cc
|
||||
(add_load_store_slice_operand): Likewise.
|
||||
* config/aarch64/aarch64.cc (aarch64_sve_reinterpret): Likewise.
|
||||
(aarch64_addti_scratch_regs, aarch64_subvti_scratch_regs): Likewise.
|
||||
|
||||
gcc/testsuite/
|
||||
PR target/115464
|
||||
* gcc.target/aarch64/sve/acle/general/pr115464_2.c: New test.
|
||||
|
||||
(cherry picked from commit 6bd4fbae45d11795a9a6f54b866308d4d7134def)
|
||||
---
|
||||
gcc/config/aarch64/aarch64-builtins.cc | 11 +++++------
|
||||
gcc/config/aarch64/aarch64-sve-builtins-base.cc | 2 +-
|
||||
gcc/config/aarch64/aarch64-sve-builtins-sme.cc | 2 +-
|
||||
gcc/config/aarch64/aarch64.cc | 14 +++++---------
|
||||
.../aarch64/sve/acle/general/pr115464_2.c | 11 +++++++++++
|
||||
5 files changed, 23 insertions(+), 17 deletions(-)
|
||||
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
|
||||
index b2e46a073a8..264b9560709 100644
|
||||
--- a/gcc/config/aarch64/aarch64-builtins.cc
|
||||
+++ b/gcc/config/aarch64/aarch64-builtins.cc
|
||||
@@ -2497,8 +2497,7 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
|
||||
int lane = INTVAL (lane_idx);
|
||||
|
||||
if (lane < nunits / 4)
|
||||
- op2 = simplify_gen_subreg (d->mode, op2, quadmode,
|
||||
- subreg_lowpart_offset (d->mode, quadmode));
|
||||
+ op2 = force_lowpart_subreg (d->mode, op2, quadmode);
|
||||
else
|
||||
{
|
||||
/* Select the upper 64 bits, either a V2SF or V4HF, this however
|
||||
@@ -2508,8 +2507,7 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode)
|
||||
gen_highpart_mode generates code that isn't optimal. */
|
||||
rtx temp1 = gen_reg_rtx (d->mode);
|
||||
rtx temp2 = gen_reg_rtx (DImode);
|
||||
- temp1 = simplify_gen_subreg (d->mode, op2, quadmode,
|
||||
- subreg_lowpart_offset (d->mode, quadmode));
|
||||
+ temp1 = force_lowpart_subreg (d->mode, op2, quadmode);
|
||||
temp1 = force_subreg (V2DImode, temp1, d->mode, 0);
|
||||
if (BYTES_BIG_ENDIAN)
|
||||
emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const0_rtx));
|
||||
@@ -2754,7 +2752,7 @@ aarch64_expand_rwsr_builtin (tree exp, rtx target, int fcode)
|
||||
case AARCH64_WSR64:
|
||||
case AARCH64_WSRF64:
|
||||
case AARCH64_WSR128:
|
||||
- subreg = lowpart_subreg (sysreg_mode, input_val, mode);
|
||||
+ subreg = force_lowpart_subreg (sysreg_mode, input_val, mode);
|
||||
break;
|
||||
case AARCH64_WSRF:
|
||||
subreg = gen_lowpart_SUBREG (SImode, input_val);
|
||||
@@ -2789,7 +2787,8 @@ aarch64_expand_rwsr_builtin (tree exp, rtx target, int fcode)
|
||||
case AARCH64_RSR64:
|
||||
case AARCH64_RSRF64:
|
||||
case AARCH64_RSR128:
|
||||
- return lowpart_subreg (TYPE_MODE (TREE_TYPE (exp)), target, sysreg_mode);
|
||||
+ return force_lowpart_subreg (TYPE_MODE (TREE_TYPE (exp)),
|
||||
+ target, sysreg_mode);
|
||||
case AARCH64_RSRF:
|
||||
subreg = gen_lowpart_SUBREG (SImode, target);
|
||||
return gen_lowpart_SUBREG (SFmode, subreg);
|
||||
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
index 2c95da79572..3c970e9c5f8 100644
|
||||
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
|
||||
@@ -1183,7 +1183,7 @@ public:
|
||||
if (BYTES_BIG_ENDIAN)
|
||||
return e.use_exact_insn (code_for_aarch64_sve_set_neonq (mode));
|
||||
insn_code icode = code_for_vcond_mask (mode, mode);
|
||||
- e.args[1] = lowpart_subreg (mode, e.args[1], GET_MODE (e.args[1]));
|
||||
+ e.args[1] = force_lowpart_subreg (mode, e.args[1], GET_MODE (e.args[1]));
|
||||
e.add_output_operand (icode);
|
||||
e.add_input_operand (icode, e.args[1]);
|
||||
e.add_input_operand (icode, e.args[0]);
|
||||
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sme.cc b/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
|
||||
index f4c91bcbb95..b66b35ae60b 100644
|
||||
--- a/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
|
||||
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sme.cc
|
||||
@@ -112,7 +112,7 @@ add_load_store_slice_operand (function_expander &e, insn_code icode,
|
||||
rtx base = e.args[argno];
|
||||
if (e.mode_suffix_id == MODE_vnum)
|
||||
{
|
||||
- rtx vnum = lowpart_subreg (SImode, e.args[vnum_argno], DImode);
|
||||
+ rtx vnum = force_lowpart_subreg (SImode, e.args[vnum_argno], DImode);
|
||||
base = simplify_gen_binary (PLUS, SImode, base, vnum);
|
||||
}
|
||||
e.add_input_operand (icode, base);
|
||||
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
|
||||
index 1beec94629d..a064aeecbc0 100644
|
||||
--- a/gcc/config/aarch64/aarch64.cc
|
||||
+++ b/gcc/config/aarch64/aarch64.cc
|
||||
@@ -3284,7 +3284,7 @@ aarch64_sve_reinterpret (machine_mode mode, rtx x)
|
||||
/* can_change_mode_class must only return true if subregs and svreinterprets
|
||||
have the same semantics. */
|
||||
if (targetm.can_change_mode_class (GET_MODE (x), mode, FP_REGS))
|
||||
- return lowpart_subreg (mode, x, GET_MODE (x));
|
||||
+ return force_lowpart_subreg (mode, x, GET_MODE (x));
|
||||
|
||||
rtx res = gen_reg_rtx (mode);
|
||||
x = force_reg (GET_MODE (x), x);
|
||||
@@ -26979,9 +26979,8 @@ aarch64_addti_scratch_regs (rtx op1, rtx op2, rtx *low_dest,
|
||||
rtx *high_in2)
|
||||
{
|
||||
*low_dest = gen_reg_rtx (DImode);
|
||||
- *low_in1 = gen_lowpart (DImode, op1);
|
||||
- *low_in2 = simplify_gen_subreg (DImode, op2, TImode,
|
||||
- subreg_lowpart_offset (DImode, TImode));
|
||||
+ *low_in1 = force_lowpart_subreg (DImode, op1, TImode);
|
||||
+ *low_in2 = force_lowpart_subreg (DImode, op2, TImode);
|
||||
*high_dest = gen_reg_rtx (DImode);
|
||||
*high_in1 = gen_highpart (DImode, op1);
|
||||
*high_in2 = simplify_gen_subreg (DImode, op2, TImode,
|
||||
@@ -27013,11 +27012,8 @@ aarch64_subvti_scratch_regs (rtx op1, rtx op2, rtx *low_dest,
|
||||
rtx *high_in2)
|
||||
{
|
||||
*low_dest = gen_reg_rtx (DImode);
|
||||
- *low_in1 = simplify_gen_subreg (DImode, op1, TImode,
|
||||
- subreg_lowpart_offset (DImode, TImode));
|
||||
-
|
||||
- *low_in2 = simplify_gen_subreg (DImode, op2, TImode,
|
||||
- subreg_lowpart_offset (DImode, TImode));
|
||||
+ *low_in1 = force_lowpart_subreg (DImode, op1, TImode);
|
||||
+ *low_in2 = force_lowpart_subreg (DImode, op2, TImode);
|
||||
*high_dest = gen_reg_rtx (DImode);
|
||||
|
||||
*high_in1 = simplify_gen_subreg (DImode, op1, TImode,
|
||||
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
|
||||
new file mode 100644
|
||||
index 00000000000..f561c34f732
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
|
||||
@@ -0,0 +1,11 @@
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+#include <arm_neon.h>
|
||||
+#include <arm_sve.h>
|
||||
+#include <arm_neon_sve_bridge.h>
|
||||
+
|
||||
+svuint16_t
|
||||
+convolve4_4_x (uint16x8x2_t permute_tbl, svuint16_t a)
|
||||
+{
|
||||
+ return svset_neonq_u16 (a, permute_tbl.val[1]);
|
||||
+}
|
||||
--
|
||||
2.46.0
|
||||
|
||||
|
||||
From e21a377dea6edfaaa494f07974135e58ff66eef1 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Sandiford <richard.sandiford@arm.com>
|
||||
Date: Tue, 18 Jun 2024 12:22:31 +0100
|
||||
Subject: [PATCH 4/4] Add force_lowpart_subreg
|
||||
|
||||
optabs had a local function called lowpart_subreg_maybe_copy
|
||||
that is very similar to the lowpart version of force_subreg.
|
||||
This patch adds a force_lowpart_subreg wrapper around
|
||||
force_subreg and uses it in optabs.cc.
|
||||
|
||||
The only difference between the old and new functions is that
|
||||
the old one asserted success while the new one doesn't.
|
||||
It's common not to assert elsewhere when taking subregs;
|
||||
normally a null result is enough.
|
||||
|
||||
Later patches will make more use of the new function.
|
||||
|
||||
gcc/
|
||||
* explow.h (force_lowpart_subreg): Declare.
|
||||
* explow.cc (force_lowpart_subreg): New function.
|
||||
* optabs.cc (lowpart_subreg_maybe_copy): Delete.
|
||||
(expand_absneg_bit): Use force_lowpart_subreg instead of
|
||||
lowpart_subreg_maybe_copy.
|
||||
(expand_copysign_bit): Likewise.
|
||||
|
||||
(cherry picked from commit 5f40d1c0cc6ce91ef28d326b8707b3f05e6f239c)
|
||||
---
|
||||
gcc/explow.cc | 14 ++++++++++++++
|
||||
gcc/explow.h | 1 +
|
||||
gcc/optabs.cc | 24 ++----------------------
|
||||
3 files changed, 17 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/gcc/explow.cc b/gcc/explow.cc
|
||||
index f6843398c4b..5fdfa81f69b 100644
|
||||
--- a/gcc/explow.cc
|
||||
+++ b/gcc/explow.cc
|
||||
@@ -760,6 +760,20 @@ force_subreg (machine_mode outermode, rtx op,
|
||||
return simplify_gen_subreg (outermode, op, innermode, byte);
|
||||
}
|
||||
|
||||
+/* Try to return an rvalue expression for the OUTERMODE lowpart of OP,
|
||||
+ which has mode INNERMODE. Allow OP to be forced into a new register
|
||||
+ if necessary.
|
||||
+
|
||||
+ Return null on failure. */
|
||||
+
|
||||
+rtx
|
||||
+force_lowpart_subreg (machine_mode outermode, rtx op,
|
||||
+ machine_mode innermode)
|
||||
+{
|
||||
+ auto byte = subreg_lowpart_offset (outermode, innermode);
|
||||
+ return force_subreg (outermode, op, innermode, byte);
|
||||
+}
|
||||
+
|
||||
/* If X is a memory ref, copy its contents to a new temp reg and return
|
||||
that reg. Otherwise, return X. */
|
||||
|
||||
diff --git a/gcc/explow.h b/gcc/explow.h
|
||||
index cbd1fcb7eb3..dd654649b06 100644
|
||||
--- a/gcc/explow.h
|
||||
+++ b/gcc/explow.h
|
||||
@@ -43,6 +43,7 @@ extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
|
||||
extern rtx force_reg (machine_mode, rtx);
|
||||
|
||||
extern rtx force_subreg (machine_mode, rtx, machine_mode, poly_uint64);
|
||||
+extern rtx force_lowpart_subreg (machine_mode, rtx, machine_mode);
|
||||
|
||||
/* Return given rtx, copied into a new temp reg if it was in memory. */
|
||||
extern rtx force_not_mem (rtx);
|
||||
diff --git a/gcc/optabs.cc b/gcc/optabs.cc
|
||||
index ce91f94ed43..804c0dc73ba 100644
|
||||
--- a/gcc/optabs.cc
|
||||
+++ b/gcc/optabs.cc
|
||||
@@ -3096,26 +3096,6 @@ expand_ffs (scalar_int_mode mode, rtx op0, rtx target)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-/* Extract the OMODE lowpart from VAL, which has IMODE. Under certain
|
||||
- conditions, VAL may already be a SUBREG against which we cannot generate
|
||||
- a further SUBREG. In this case, we expect forcing the value into a
|
||||
- register will work around the situation. */
|
||||
-
|
||||
-static rtx
|
||||
-lowpart_subreg_maybe_copy (machine_mode omode, rtx val,
|
||||
- machine_mode imode)
|
||||
-{
|
||||
- rtx ret;
|
||||
- ret = lowpart_subreg (omode, val, imode);
|
||||
- if (ret == NULL)
|
||||
- {
|
||||
- val = force_reg (imode, val);
|
||||
- ret = lowpart_subreg (omode, val, imode);
|
||||
- gcc_assert (ret != NULL);
|
||||
- }
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
/* Expand a floating point absolute value or negation operation via a
|
||||
logical operation on the sign bit. */
|
||||
|
||||
@@ -3204,7 +3184,7 @@ expand_absneg_bit (enum rtx_code code, scalar_float_mode mode,
|
||||
gen_lowpart (imode, op0),
|
||||
immed_wide_int_const (mask, imode),
|
||||
gen_lowpart (imode, target), 1, OPTAB_LIB_WIDEN);
|
||||
- target = lowpart_subreg_maybe_copy (mode, temp, imode);
|
||||
+ target = force_lowpart_subreg (mode, temp, imode);
|
||||
|
||||
set_dst_reg_note (get_last_insn (), REG_EQUAL,
|
||||
gen_rtx_fmt_e (code, mode, copy_rtx (op0)),
|
||||
@@ -4043,7 +4023,7 @@ expand_copysign_bit (scalar_float_mode mode, rtx op0, rtx op1, rtx target,
|
||||
|
||||
temp = expand_binop (imode, ior_optab, op0, op1,
|
||||
gen_lowpart (imode, target), 1, OPTAB_LIB_WIDEN);
|
||||
- target = lowpart_subreg_maybe_copy (mode, temp, imode);
|
||||
+ target = force_lowpart_subreg (mode, temp, imode);
|
||||
}
|
||||
|
||||
return target;
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
cat 1>&2 <<EOF
|
||||
*
|
||||
* gcc-go is used in Alpine for bootstrapping Go.
|
||||
* It is currently discouraged to use it for other purposes.
|
||||
*
|
||||
EOF
|
||||
@@ -0,0 +1,56 @@
|
||||
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=3fe5720430a9ba61ed7562aac4d758cc77d49a28
|
||||
--
|
||||
From 3fe5720430a9ba61ed7562aac4d758cc77d49a28 Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelinek <jakub@redhat.com>
|
||||
Date: Sat, 3 Aug 2024 20:37:54 +0200
|
||||
Subject: [PATCH] libquadmath: Fix up libquadmath/math/sqrtq.c compilation in
|
||||
some powerpc* configurations [PR116007]
|
||||
|
||||
My PR114623 change started using soft-fp.h and quad.h for the sqrtq implementation.
|
||||
Unfortunately, that seems to fail building in some powerpc* configurations, where
|
||||
TFmode isn't available.
|
||||
quad.h has:
|
||||
#ifndef TFtype
|
||||
typedef float TFtype __attribute__ ((mode (TF)));
|
||||
#endif
|
||||
and uses TFtype. quad.h has:
|
||||
/* Define the complex type corresponding to __float128
|
||||
("_Complex __float128" is not allowed) */
|
||||
#if (!defined(_ARCH_PPC)) || defined(__LONG_DOUBLE_IEEE128__)
|
||||
typedef _Complex float __attribute__((mode(TC))) __complex128;
|
||||
#else
|
||||
typedef _Complex float __attribute__((mode(KC))) __complex128;
|
||||
#endif
|
||||
with the conditional and KCmode use added during porting of libquadmath
|
||||
to powerpc*, so I've just defined TFtype for powerpc when __LONG_DOUBLE_IEEE128__
|
||||
isn't defined; I could define it to float __attribute__ ((mode (KF))) but it
|
||||
seemed easier to just define it to __float128 which should do the same thing.
|
||||
|
||||
2024-08-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/116007
|
||||
* math/sqrtq.c (TFtype): For PowerPC without __LONG_DOUBLE_IEEE128__
|
||||
define to __float128 before including soft-fp.h and quad.h.
|
||||
|
||||
(cherry picked from commit 3ac02e67503ccffa3dfeeffc0a60fce6bdaca43b)
|
||||
---
|
||||
libquadmath/math/sqrtq.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/libquadmath/math/sqrtq.c b/libquadmath/math/sqrtq.c
|
||||
index 8ca2828d42ce..a58998a06670 100644
|
||||
--- a/libquadmath/math/sqrtq.c
|
||||
+++ b/libquadmath/math/sqrtq.c
|
||||
@@ -9,6 +9,9 @@
|
||||
&& defined(FE_TOWARDZERO) \
|
||||
&& defined(FE_INEXACT)
|
||||
#define USE_SOFT_FP 1
|
||||
+#if defined(_ARCH_PPC) && !defined(__LONG_DOUBLE_IEEE128__)
|
||||
+#define TFtype __float128
|
||||
+#endif
|
||||
#include "../../libgcc/soft-fp/soft-fp.h"
|
||||
#include "../../libgcc/soft-fp/quad.h"
|
||||
#endif
|
||||
--
|
||||
2.43.5
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2cf89ae83225f932b226cd57ef2d083a59bcf8a3
|
||||
--
|
||||
From 2cf89ae83225f932b226cd57ef2d083a59bcf8a3 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Biener <rguenther@suse.de>
|
||||
Date: Tue, 6 Aug 2024 14:56:26 +0200
|
||||
Subject: [PATCH] tree-optimization/116166 - forward jump-threading going wild
|
||||
|
||||
Currently the forward threader isn't limited as to the search space
|
||||
it explores and with it now using path-ranger for simplifying
|
||||
conditions it runs into it became pretty slow for degenerate cases
|
||||
like compiling insn-emit.cc for RISC-V esp. when compiling for
|
||||
a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
|
||||
|
||||
The following makes the forward threader honor the search space
|
||||
limit I introduced for the backward threader. This reduces
|
||||
compile-time from minutes to seconds for the testcase in PR116166.
|
||||
|
||||
Note this wasn't necessary before we had ranger but with ranger
|
||||
the work we do is quadatic in the length of the threading path
|
||||
we build up (the same is true for the backwards threader).
|
||||
|
||||
PR tree-optimization/116166
|
||||
* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
|
||||
Add limit parameter.
|
||||
(jump_threader::thread_through_normal_block): Likewise.
|
||||
* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
|
||||
Honor and decrement limit parameter.
|
||||
(jump_threader::thread_through_normal_block): Likewise.
|
||||
(jump_threader::thread_across_edge): Initialize limit from
|
||||
param_max_jump_thread_paths and pass it down to workers.
|
||||
---
|
||||
gcc/tree-ssa-threadedge.cc | 30 ++++++++++++++++++++++--------
|
||||
gcc/tree-ssa-threadedge.h | 4 ++--
|
||||
2 files changed, 24 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
|
||||
index 7f82639b8ecc..0aa2aa851430 100644
|
||||
--- a/gcc/tree-ssa-threadedge.cc
|
||||
+++ b/gcc/tree-ssa-threadedge.cc
|
||||
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
|
||||
bool
|
||||
jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
|
||||
edge taken_edge,
|
||||
- bitmap visited)
|
||||
+ bitmap visited, unsigned &limit)
|
||||
{
|
||||
basic_block bb = taken_edge->dest;
|
||||
gimple_stmt_iterator gsi;
|
||||
gimple *stmt;
|
||||
tree cond;
|
||||
|
||||
+ if (limit == 0)
|
||||
+ return false;
|
||||
+ --limit;
|
||||
+
|
||||
/* The key property of these blocks is that they need not be duplicated
|
||||
when threading. Thus they cannot have visible side effects such
|
||||
as PHI nodes. */
|
||||
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
|
||||
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
|
||||
m_state->append_path (taken_edge->dest);
|
||||
bitmap_set_bit (visited, taken_edge->dest->index);
|
||||
- return thread_around_empty_blocks (path, taken_edge, visited);
|
||||
+ return thread_around_empty_blocks (path, taken_edge, visited,
|
||||
+ limit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
|
||||
m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
|
||||
m_state->append_path (taken_edge->dest);
|
||||
|
||||
- thread_around_empty_blocks (path, taken_edge, visited);
|
||||
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
|
||||
|
||||
int
|
||||
jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
|
||||
- edge e, bitmap visited)
|
||||
+ edge e, bitmap visited,
|
||||
+ unsigned &limit)
|
||||
{
|
||||
+ if (limit == 0)
|
||||
+ return 0;
|
||||
+ limit--;
|
||||
+
|
||||
m_state->register_equivs_edge (e);
|
||||
|
||||
/* PHIs create temporary equivalences.
|
||||
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
|
||||
visited. This may be overly conservative. */
|
||||
bitmap_set_bit (visited, dest->index);
|
||||
bitmap_set_bit (visited, e->dest->index);
|
||||
- thread_around_empty_blocks (path, taken_edge, visited);
|
||||
+ thread_around_empty_blocks (path, taken_edge, visited, limit);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
|
||||
bitmap_set_bit (visited, e->src->index);
|
||||
bitmap_set_bit (visited, e->dest->index);
|
||||
|
||||
+ /* Limit search space. */
|
||||
+ unsigned limit = param_max_jump_thread_paths;
|
||||
+
|
||||
int threaded = 0;
|
||||
if ((e->flags & EDGE_DFS_BACK) == 0)
|
||||
- threaded = thread_through_normal_block (path, e, visited);
|
||||
+ threaded = thread_through_normal_block (path, e, visited, limit);
|
||||
|
||||
if (threaded > 0)
|
||||
{
|
||||
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
|
||||
m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
|
||||
m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
|
||||
|
||||
- found = thread_around_empty_blocks (path, taken_edge, visited);
|
||||
+ found = thread_around_empty_blocks (path, taken_edge, visited, limit);
|
||||
|
||||
if (!found)
|
||||
found = thread_through_normal_block (path,
|
||||
- path->last ()->e, visited) > 0;
|
||||
+ path->last ()->e, visited,
|
||||
+ limit) > 0;
|
||||
|
||||
/* If we were able to thread through a successor of E->dest, then
|
||||
record the jump threading opportunity. */
|
||||
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
|
||||
index 9f6cbfe93307..245b3506a550 100644
|
||||
--- a/gcc/tree-ssa-threadedge.h
|
||||
+++ b/gcc/tree-ssa-threadedge.h
|
||||
@@ -101,9 +101,9 @@ private:
|
||||
unsigned limit);
|
||||
|
||||
bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
|
||||
- edge, bitmap visited);
|
||||
+ edge, bitmap visited, unsigned &limit);
|
||||
int thread_through_normal_block (vec<jump_thread_edge *> *path,
|
||||
- edge, bitmap visited);
|
||||
+ edge, bitmap visited, unsigned &limit);
|
||||
void thread_across_edge (edge);
|
||||
bool record_temporary_equivalences_from_phis (edge);
|
||||
gimple *record_temporary_equivalences_from_stmts_at_dest (edge);
|
||||
--
|
||||
2.43.5
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
From 94cf7d2b3514ed3a4401861a519ead450e022afc Mon Sep 17 00:00:00 2001
|
||||
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] posix_memalign
|
||||
Subject: [PATCH 01/35] posix_memalign
|
||||
|
||||
---
|
||||
gcc/config/i386/pmm_malloc.h | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
|
||||
index d1d79a32fc9..069c3bb8324 100644
|
||||
index 3527283693b..c4071b64b53 100644
|
||||
--- a/gcc/config/i386/pmm_malloc.h
|
||||
+++ b/gcc/config/i386/pmm_malloc.h
|
||||
@@ -27,12 +27,13 @@
|
||||
@@ -38,5 +38,5 @@ index d1d79a32fc9..069c3bb8324 100644
|
||||
else
|
||||
return NULL;
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0d5e04099a3d2609105719f7396a4ff941b873b6 Mon Sep 17 00:00:00 2001
|
||||
From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 23 Jan 2025 17:12:51 -0800
|
||||
Subject: [PATCH] gcc: poison-system-directories
|
||||
Date: Fri, 29 Mar 2013 08:59:00 +0400
|
||||
Subject: [PATCH 02/35] 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
|
||||
@@ -11,25 +11,25 @@ aborted.
|
||||
Instead, we add the two missing items to the current scan. If the user
|
||||
wants this to be a failure, they can add "-Werror=poison-system-directories".
|
||||
|
||||
Upstream-Status: Inappropriate [OE configuration]
|
||||
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
||||
Signed-off-by: sunil dora <sunilkumar.dora@windriver.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
gcc/common.opt | 4 ++++
|
||||
gcc/config.in | 10 ++++++++++
|
||||
gcc/configure | 19 +++++++++++++++++++
|
||||
gcc/configure.ac | 16 ++++++++++++++++
|
||||
gcc/config.in | 6 ++++++
|
||||
gcc/configure | 16 ++++++++++++++++
|
||||
gcc/configure.ac | 10 ++++++++++
|
||||
gcc/doc/invoke.texi | 9 +++++++++
|
||||
gcc/gcc.cc | 12 ++++++++++--
|
||||
gcc/incpath.cc | 25 +++++++++++++++++++++++++
|
||||
7 files changed, 93 insertions(+), 2 deletions(-)
|
||||
gcc/gcc.cc | 2 ++
|
||||
gcc/incpath.cc | 21 +++++++++++++++++++++
|
||||
7 files changed, 68 insertions(+)
|
||||
|
||||
diff --git a/gcc/common.opt b/gcc/common.opt
|
||||
index e3fa0dacec4..bea1adc0940 100644
|
||||
index 862c474d3c8..64c4277c991 100644
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -729,6 +729,10 @@ Wreturn-local-addr
|
||||
@@ -711,6 +711,10 @@ Wreturn-local-addr
|
||||
Common Var(warn_return_local_addr) Init(1) Warning
|
||||
Warn about returning a pointer/reference to a local or temporary variable.
|
||||
|
||||
@@ -41,10 +41,10 @@ index e3fa0dacec4..bea1adc0940 100644
|
||||
Common Var(warn_shadow) Warning
|
||||
Warn when one variable shadows another. Same as -Wshadow=global.
|
||||
diff --git a/gcc/config.in b/gcc/config.in
|
||||
index a79c51adb2b..8a531ed591c 100644
|
||||
index 4cad077bfbe..0679fbbf4c6 100644
|
||||
--- a/gcc/config.in
|
||||
+++ b/gcc/config.in
|
||||
@@ -249,6 +249,16 @@
|
||||
@@ -236,6 +236,12 @@
|
||||
#endif
|
||||
|
||||
|
||||
@@ -52,28 +52,24 @@ index a79c51adb2b..8a531ed591c 100644
|
||||
+#ifndef USED_FOR_TARGET
|
||||
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
|
||||
+#endif
|
||||
+/* Define to warn for use of native system header directories */
|
||||
+#ifndef USED_FOR_TARGET
|
||||
+#undef POISON_BY_DEFAULT
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/* Define if you want all operations on RTL (the basic data structure of the
|
||||
optimizer and back end) to be checked for dynamic type safety at runtime.
|
||||
This is quite expensive. */
|
||||
diff --git a/gcc/configure b/gcc/configure
|
||||
index 16965953f05..0f4a5d52c30 100755
|
||||
index c7b26d1927d..8c46369f73f 100755
|
||||
--- a/gcc/configure
|
||||
+++ b/gcc/configure
|
||||
@@ -1051,6 +1051,7 @@ enable_maintainer_mode
|
||||
@@ -1026,6 +1026,7 @@ enable_maintainer_mode
|
||||
enable_link_mutex
|
||||
enable_link_serialization
|
||||
enable_version_specific_runtime_libs
|
||||
+enable_poison_system_directories
|
||||
enable_plugin
|
||||
enable_host_shared
|
||||
enable_host_pie
|
||||
@@ -1828,6 +1829,8 @@ Optional Features:
|
||||
enable_libquadmath_support
|
||||
@@ -1788,6 +1789,8 @@ Optional Features:
|
||||
--enable-version-specific-runtime-libs
|
||||
specify that runtime libraries should be installed
|
||||
in a compiler-specific directory
|
||||
@@ -81,8 +77,8 @@ index 16965953f05..0f4a5d52c30 100755
|
||||
+ warn for use of native system header directories
|
||||
--enable-plugin enable plugin support
|
||||
--enable-host-shared build host code as shared libraries
|
||||
--enable-host-pie build host code as PIE
|
||||
@@ -34027,6 +34030,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
|
||||
--disable-libquadmath-support
|
||||
@@ -31753,6 +31756,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
|
||||
fi
|
||||
|
||||
|
||||
@@ -93,12 +89,9 @@ index 16965953f05..0f4a5d52c30 100755
|
||||
+ enable_poison_system_directories=no
|
||||
+fi
|
||||
+
|
||||
+if test "x${enable_poison_system_directories}" != "xno"; then
|
||||
+if test "x${enable_poison_system_directories}" = "xyes"; then
|
||||
+
|
||||
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
|
||||
+if test "$enable_poison_system_directories" = "error"; then
|
||||
+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
|
||||
+fi
|
||||
+
|
||||
+fi
|
||||
+
|
||||
@@ -106,47 +99,41 @@ index 16965953f05..0f4a5d52c30 100755
|
||||
|
||||
|
||||
diff --git a/gcc/configure.ac b/gcc/configure.ac
|
||||
index 9f67e62950a..b0e3615e5aa 100644
|
||||
index 09082e8ccae..5504bf6eb01 100644
|
||||
--- a/gcc/configure.ac
|
||||
+++ b/gcc/configure.ac
|
||||
@@ -7502,6 +7502,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
|
||||
@@ -7292,6 +7292,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
|
||||
[specify that runtime libraries should be
|
||||
installed in a compiler-specific directory])])
|
||||
|
||||
+AC_ARG_ENABLE([poison-system-directories],
|
||||
+ AS_HELP_STRING([--enable-poison-system-directories],
|
||||
+ [warn for use of native system header directories (no/yes/error)]),,
|
||||
+ [warn for use of native system header directories]),,
|
||||
+ [enable_poison_system_directories=no])
|
||||
+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
|
||||
+if test "x${enable_poison_system_directories}" != "xno"; then
|
||||
+ AC_MSG_NOTICE([poisoned directories enabled])
|
||||
+if test "x${enable_poison_system_directories}" = "xyes"; then
|
||||
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
|
||||
+ [1],
|
||||
+ [Define to warn for use of native system header directories])
|
||||
+ if test $enable_poison_system_directories = "error"; then
|
||||
+ AC_MSG_NOTICE([poisoned directories are fatal])
|
||||
+ AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# Substitute configuration variables
|
||||
AC_SUBST(subdirs)
|
||||
AC_SUBST(srcdir)
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 72009c33cd0..29aea724731 100644
|
||||
index af0e5933fdb..b6731a4673c 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -405,6 +405,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
@@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
|
||||
-Wparentheses -Wno-pedantic-ms-format
|
||||
-Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
|
||||
+-Wno-poison-system-directories
|
||||
-Wno-pragmas -Wno-pragma-once-outside-header -Wno-prio-ctor-dtor
|
||||
-Wno-psabi
|
||||
-Wredundant-decls -Wrestrict
|
||||
@@ -10727,6 +10728,14 @@ an error. @option{Wint-to-pointer-cast} is enabled by default.
|
||||
Suppress warnings from casts from a pointer to an integer type of a
|
||||
different size.
|
||||
-Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls
|
||||
-Wrestrict -Wno-return-local-addr -Wreturn-type
|
||||
-Wno-scalar-storage-order -Wsequence-point
|
||||
@@ -8426,6 +8427,14 @@ made up of data only and thus requires no special treatment. But, for
|
||||
most targets, it is made up of code and thus requires the stack to be
|
||||
made executable in order for the program to work properly.
|
||||
|
||||
+@opindex Wno-poison-system-directories
|
||||
+@item -Wno-poison-system-directories
|
||||
@@ -156,28 +143,15 @@ index 72009c33cd0..29aea724731 100644
|
||||
+directories contain the correct headers and libraries for the target
|
||||
+system rather than the host.
|
||||
+
|
||||
@opindex Winvalid-pch
|
||||
@opindex Wno-invalid-pch
|
||||
@item -Winvalid-pch
|
||||
@opindex Wfloat-equal
|
||||
@opindex Wno-float-equal
|
||||
@item -Wfloat-equal
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 4fd87f2c4a1..79d4920a047 100644
|
||||
index 16bb07f2cdc..33b56e721d2 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -909,6 +909,12 @@ proper position among the other output files. */
|
||||
#define ASM_MAP ""
|
||||
#endif
|
||||
|
||||
+#ifdef POISON_BY_DEFAULT
|
||||
+#define POISON_IS_ERROR " -Werror=poison-system-directories"
|
||||
+#else
|
||||
+#define POISON_IS_ERROR
|
||||
+#endif
|
||||
+
|
||||
/* Assembler options for compressed debug sections. */
|
||||
#if HAVE_LD_COMPRESS_DEBUG == 0
|
||||
/* Reject if the linker cannot write compressed debug sections. */
|
||||
@@ -1166,6 +1172,8 @@ proper position among the other output files. */
|
||||
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
|
||||
@@ -1177,6 +1187,8 @@ proper position among the other output files. */
|
||||
"-z now " \
|
||||
"%X %{o*} %{e*} %{N} %{n} %{r}\
|
||||
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
|
||||
+ %{Wno-poison-system-directories:--no-poison-system-directories} \
|
||||
@@ -185,26 +159,8 @@ index 4fd87f2c4a1..79d4920a047 100644
|
||||
%{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
|
||||
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
|
||||
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
|
||||
@@ -1268,7 +1276,7 @@ static const char *cpp_options =
|
||||
"%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
|
||||
%{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
|
||||
%{!fno-working-directory:-fworking-directory}}} %{O*}\
|
||||
- %{undef} %{save-temps*:-fpch-preprocess}";
|
||||
+ %{undef} %{save-temps*:-fpch-preprocess}" POISON_IS_ERROR;
|
||||
|
||||
/* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
|
||||
|
||||
@@ -1297,7 +1305,7 @@ static const char *cc1_options =
|
||||
%{coverage:-fprofile-arcs -ftest-coverage}\
|
||||
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
|
||||
%{!fprofile-update=single:\
|
||||
- %{pthread:-fprofile-update=prefer-atomic}}}";
|
||||
+ %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR;
|
||||
|
||||
static const char *asm_options =
|
||||
"%{-target-help:%:print-asm-header()} "
|
||||
diff --git a/gcc/incpath.cc b/gcc/incpath.cc
|
||||
index c1bbfd3872a..2cdbebc4c50 100644
|
||||
index 4d44321183f..0f3f071b44c 100644
|
||||
--- a/gcc/incpath.cc
|
||||
+++ b/gcc/incpath.cc
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -215,20 +171,9 @@ index c1bbfd3872a..2cdbebc4c50 100644
|
||||
|
||||
/* Microsoft Windows does not natively support inodes.
|
||||
VMS has non-numeric inodes. */
|
||||
@@ -273,6 +274,10 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
|
||||
cur->name, xstrerror (errno));
|
||||
reason = REASON_NOENT;
|
||||
}
|
||||
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
|
||||
+ pcur = &cur->next;
|
||||
+ continue;
|
||||
+#endif
|
||||
}
|
||||
else if (!S_ISDIR (st.st_mode))
|
||||
cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0,
|
||||
@@ -411,6 +416,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
|
||||
fprintf (stderr, _("End of #embed search list.\n"));
|
||||
@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
|
||||
}
|
||||
fprintf (stderr, _("End of search list.\n"));
|
||||
}
|
||||
+
|
||||
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
|
||||
@@ -237,22 +182,22 @@ index c1bbfd3872a..2cdbebc4c50 100644
|
||||
+ struct cpp_dir *p;
|
||||
+
|
||||
+ for (p = heads[INC_QUOTE]; p; p = p->next)
|
||||
+ {
|
||||
+ if ((!strncmp (p->name, "/usr/include", 12))
|
||||
+ || (!strncmp (p->name, "/usr/local/include", 18))
|
||||
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
|
||||
+ || (!strncmp (p->name, "/sw/include", 11))
|
||||
+ || (!strncmp (p->name, "/opt/include", 12)))
|
||||
+ warning (OPT_Wpoison_system_directories,
|
||||
+ "include location \"%s\" is unsafe for "
|
||||
+ "cross-compilation",
|
||||
+ p->name);
|
||||
+ }
|
||||
+ {
|
||||
+ if ((!strncmp (p->name, "/usr/include", 12))
|
||||
+ || (!strncmp (p->name, "/usr/local/include", 18))
|
||||
+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
|
||||
+ || (!strncmp (p->name, "/sw/include", 11))
|
||||
+ || (!strncmp (p->name, "/opt/include", 12)))
|
||||
+ warning (OPT_Wpoison_system_directories,
|
||||
+ "include location \"%s\" is unsafe for "
|
||||
+ "cross-compilation",
|
||||
+ p->name);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Use given -I paths for #include "..." but not #include <...>, and
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 90e8697dd88fd99ce2cf8739e95494853005377e Mon Sep 17 00:00:00 2001
|
||||
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] specs: turn on -Wl,-z,now by default
|
||||
Subject: [PATCH 03/35] 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.
|
||||
@@ -14,10 +14,10 @@ now by default.
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 29aea724731..6fb3ab70cc7 100644
|
||||
index b6731a4673c..f393c7846c6 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -19477,6 +19477,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
|
||||
@@ -17961,6 +17961,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
|
||||
linker. When using the GNU linker, you can also get the same effect with
|
||||
@option{-Wl,-Map=output.map}.
|
||||
|
||||
@@ -28,10 +28,10 @@ index 29aea724731..6fb3ab70cc7 100644
|
||||
@item -u @var{symbol}
|
||||
Pretend the symbol @var{symbol} is undefined, to force linking of
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 79d4920a047..74a356fdf5e 100644
|
||||
index 33b56e721d2..f82fae23c22 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1170,6 +1170,7 @@ proper position among the other output files. */
|
||||
@@ -1144,6 +1144,7 @@ proper position among the other output files. */
|
||||
"%{flto|flto=*:%<fcompare-debug*} \
|
||||
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
|
||||
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
|
||||
@@ -40,5 +40,5 @@ index 79d4920a047..74a356fdf5e 100644
|
||||
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
|
||||
%{Wno-poison-system-directories:--no-poison-system-directories} \
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
From 17c9cf9272077bc7ac784daffd4c68ba1ce67a0d Mon Sep 17 00:00:00 2001
|
||||
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] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
|
||||
ObjC++, if the optimization level is > 0
|
||||
Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
|
||||
ObjC, ObjC++, if the optimization level is > 0
|
||||
|
||||
---
|
||||
gcc/c-family/c-cppbuiltin.cc | 4 ++++
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
|
||||
index 4589ee4a3a6..9edf095384c 100644
|
||||
index 5d64625fcd7..868d69506e4 100644
|
||||
--- a/gcc/c-family/c-cppbuiltin.cc
|
||||
+++ b/gcc/c-family/c-cppbuiltin.cc
|
||||
@@ -1581,6 +1581,10 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||
@@ -1546,6 +1546,10 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
|
||||
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
|
||||
|
||||
@@ -25,10 +25,10 @@ index 4589ee4a3a6..9edf095384c 100644
|
||||
if (flag_gnu89_inline)
|
||||
cpp_define (pfile, "__GNUC_GNU_INLINE__");
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 6fb3ab70cc7..799ce073dbf 100644
|
||||
index f393c7846c6..ef3c14a189e 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -12840,6 +12840,12 @@ also turns on the following optimization flags:
|
||||
@@ -11868,6 +11868,12 @@ also turns on the following optimization flags:
|
||||
Please note the warning under @option{-fgcse} about
|
||||
invoking @option{-O2} on programs that use computed gotos.
|
||||
|
||||
@@ -42,5 +42,5 @@ index 6fb3ab70cc7..799ce073dbf 100644
|
||||
@item -O3
|
||||
Optimize yet more. @option{-O3} turns on all optimizations specified
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
From a59da582e83071de0566274d912ca6f05f4b75d0 Mon Sep 17 00:00:00 2001
|
||||
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] On linux targets pass --as-needed by default to the linker,
|
||||
but always link the sanitizer libraries with --no-as-needed.
|
||||
Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
|
||||
linker, but always link the sanitizer libraries with --no-as-needed.
|
||||
|
||||
---
|
||||
gcc/config/aarch64/aarch64-linux.h | 1 +
|
||||
@@ -22,10 +22,10 @@ Subject: [PATCH] On linux targets pass --as-needed by default to the linker,
|
||||
14 files changed, 36 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
|
||||
index 116bb4e69f3..daf99f8dce9 100644
|
||||
index 4277f03da2a..b131983a546 100644
|
||||
--- a/gcc/config/aarch64/aarch64-linux.h
|
||||
+++ b/gcc/config/aarch64/aarch64-linux.h
|
||||
@@ -39,6 +39,7 @@
|
||||
@@ -35,6 +35,7 @@
|
||||
#define CPP_SPEC "%{pthread:-D_REENTRANT}"
|
||||
|
||||
#define LINUX_TARGET_LINK_SPEC "%{h*} \
|
||||
@@ -34,7 +34,7 @@ index 116bb4e69f3..daf99f8dce9 100644
|
||||
%{shared:-shared} \
|
||||
%{symbolic:-Bsymbolic} \
|
||||
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
|
||||
index 3fd3b831166..0b4c2dccebe 100644
|
||||
index 03f783f2ad1..d946e700dda 100644
|
||||
--- a/gcc/config/alpha/linux-elf.h
|
||||
+++ b/gcc/config/alpha/linux-elf.h
|
||||
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -47,7 +47,7 @@ index 3fd3b831166..0b4c2dccebe 100644
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
|
||||
index d4d389e2aa8..adccc0b11c2 100644
|
||||
index 7b7b7cbbe14..49c050c6f2c 100644
|
||||
--- a/gcc/config/arm/linux-elf.h
|
||||
+++ b/gcc/config/arm/linux-elf.h
|
||||
@@ -70,6 +70,7 @@
|
||||
@@ -59,7 +59,7 @@ index d4d389e2aa8..adccc0b11c2 100644
|
||||
SUBTARGET_EXTRA_LINK_SPEC
|
||||
|
||||
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
|
||||
index 4c4e31efa39..3c17ac6eade 100644
|
||||
index eda8010b133..b26b17f2f2a 100644
|
||||
--- a/gcc/config/gnu-user.h
|
||||
+++ b/gcc/config/gnu-user.h
|
||||
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -87,7 +87,7 @@ index 4c4e31efa39..3c17ac6eade 100644
|
||||
|
||||
#undef TARGET_F951_OPTIONS
|
||||
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
|
||||
index 7abfda53049..ceb8f855b7d 100644
|
||||
index a79b739089d..e0752673dff 100644
|
||||
--- a/gcc/config/i386/gnu-user.h
|
||||
+++ b/gcc/config/i386/gnu-user.h
|
||||
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -100,7 +100,7 @@ index 7abfda53049..ceb8f855b7d 100644
|
||||
%{!static: \
|
||||
%{!static-pie: \
|
||||
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
|
||||
index abe714711bf..3ca128a79f5 100644
|
||||
index 3b63b99acf6..759bf0db86f 100644
|
||||
--- a/gcc/config/i386/gnu-user64.h
|
||||
+++ b/gcc/config/i386/gnu-user64.h
|
||||
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
@@ -112,7 +112,7 @@ index abe714711bf..3ca128a79f5 100644
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
|
||||
index a2494c214c4..e1a5d530cdf 100644
|
||||
index 5dfd428aa17..02656dad7fc 100644
|
||||
--- a/gcc/config/ia64/linux.h
|
||||
+++ b/gcc/config/ia64/linux.h
|
||||
@@ -58,7 +58,7 @@ do { \
|
||||
@@ -125,7 +125,7 @@ index a2494c214c4..e1a5d530cdf 100644
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
|
||||
index 5a82508c113..6eee7cdc603 100644
|
||||
index a4e5380b589..3cc61bce69f 100644
|
||||
--- a/gcc/config/mips/gnu-user.h
|
||||
+++ b/gcc/config/mips/gnu-user.h
|
||||
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -137,7 +137,7 @@ index 5a82508c113..6eee7cdc603 100644
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
|
||||
index 9060c940a44..282c77b6a7b 100644
|
||||
index 3e625e0f867..f8c2c351e5a 100644
|
||||
--- a/gcc/config/riscv/linux.h
|
||||
+++ b/gcc/config/riscv/linux.h
|
||||
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -147,12 +147,12 @@ index 9060c940a44..282c77b6a7b 100644
|
||||
+-as-needed \
|
||||
-melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv" LD_EMUL_SUFFIX " \
|
||||
%{mno-relax:--no-relax} \
|
||||
-X \
|
||||
%{mbig-endian:-EB} \
|
||||
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
|
||||
index 0316d8cb65d..139e1b6796c 100644
|
||||
index 9e457033d11..08016bf224d 100644
|
||||
--- a/gcc/config/rs6000/linux64.h
|
||||
+++ b/gcc/config/rs6000/linux64.h
|
||||
@@ -378,13 +378,13 @@ extern int dot_symbols;
|
||||
@@ -377,13 +377,13 @@ extern int dot_symbols;
|
||||
" -m elf64ppc")
|
||||
#endif
|
||||
|
||||
@@ -169,10 +169,10 @@ index 0316d8cb65d..139e1b6796c 100644
|
||||
%{rdynamic:-export-dynamic} \
|
||||
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
|
||||
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
|
||||
index afb5c6ad867..b64638fb25b 100644
|
||||
index ae932fc22f0..c8ff0c6dc8e 100644
|
||||
--- a/gcc/config/rs6000/sysv4.h
|
||||
+++ b/gcc/config/rs6000/sysv4.h
|
||||
@@ -781,7 +781,7 @@ GNU_USER_TARGET_CC1_SPEC
|
||||
@@ -780,7 +780,7 @@ GNU_USER_TARGET_CC1_SPEC
|
||||
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
|
||||
#endif
|
||||
|
||||
@@ -182,7 +182,7 @@ index afb5c6ad867..b64638fb25b 100644
|
||||
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
|
||||
|
||||
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
|
||||
index 2c3bca5dfcb..b90661247a4 100644
|
||||
index 02aa1edaff8..64df5801134 100644
|
||||
--- a/gcc/config/s390/linux.h
|
||||
+++ b/gcc/config/s390/linux.h
|
||||
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
@@ -195,7 +195,7 @@ index 2c3bca5dfcb..b90661247a4 100644
|
||||
%{!shared: \
|
||||
%{static:-static} \
|
||||
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
|
||||
index 6d928846895..3cc05bb7240 100644
|
||||
index 0e33b3cac2c..c2f44546e62 100644
|
||||
--- a/gcc/config/sparc/linux.h
|
||||
+++ b/gcc/config/sparc/linux.h
|
||||
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
|
||||
@@ -208,10 +208,10 @@ index 6d928846895..3cc05bb7240 100644
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index 74a356fdf5e..fc9c7d15b04 100644
|
||||
index f82fae23c22..da6417dd0d1 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -774,8 +774,11 @@ proper position among the other output files. */
|
||||
@@ -754,8 +754,11 @@ proper position among the other output files. */
|
||||
#ifdef LIBASAN_EARLY_SPEC
|
||||
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
@@ -225,7 +225,7 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
STATIC_LIBASAN_LIBS
|
||||
#else
|
||||
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
|
||||
@@ -810,8 +813,11 @@ proper position among the other output files. */
|
||||
@@ -790,8 +793,11 @@ proper position among the other output files. */
|
||||
#ifdef LIBTSAN_EARLY_SPEC
|
||||
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
@@ -239,7 +239,7 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
STATIC_LIBTSAN_LIBS
|
||||
#else
|
||||
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
|
||||
@@ -828,8 +834,11 @@ proper position among the other output files. */
|
||||
@@ -808,8 +814,11 @@ proper position among the other output files. */
|
||||
#ifdef LIBLSAN_EARLY_SPEC
|
||||
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
|
||||
#elif defined(HAVE_LD_STATIC_DYNAMIC)
|
||||
@@ -253,7 +253,7 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
STATIC_LIBLSAN_LIBS
|
||||
#else
|
||||
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
|
||||
@@ -844,8 +853,11 @@ proper position among the other output files. */
|
||||
@@ -824,8 +833,11 @@ proper position among the other output files. */
|
||||
#define STATIC_LIBUBSAN_LIBS \
|
||||
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
|
||||
#ifdef HAVE_LD_STATIC_DYNAMIC
|
||||
@@ -268,5 +268,5 @@ index 74a356fdf5e..fc9c7d15b04 100644
|
||||
#else
|
||||
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
From 35c02ea8267e193b92f30495c94ee1e8e5c2be8e Mon Sep 17 00:00:00 2001
|
||||
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] Enable -Wformat and -Wformat-security by default.
|
||||
Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
|
||||
|
||||
---
|
||||
gcc/c-family/c.opt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
|
||||
index 75b6531860e..78830ce4b42 100644
|
||||
index a75038930ae..b98726f33ed 100644
|
||||
--- a/gcc/c-family/c.opt
|
||||
+++ b/gcc/c-family/c.opt
|
||||
@@ -805,7 +805,7 @@ Warn about function calls with format strings that write past the end
|
||||
of the destination region.
|
||||
@@ -704,7 +704,7 @@ Warn about function calls with format strings that write past the end
|
||||
of the destination region. Same as -Wformat-overflow=1.
|
||||
|
||||
Wformat-security
|
||||
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
|
||||
@@ -20,7 +20,7 @@ index 75b6531860e..78830ce4b42 100644
|
||||
Warn about possible security problems with format functions.
|
||||
|
||||
Wformat-signedness
|
||||
@@ -830,7 +830,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
|
||||
@@ -725,7 +725,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++
|
||||
Warn about zero-length formats.
|
||||
|
||||
Wformat=
|
||||
@@ -28,7 +28,7 @@ index 75b6531860e..78830ce4b42 100644
|
||||
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) IntegerRange(0, 2)
|
||||
Warn about printf/scanf/strftime/strfmon format string anomalies.
|
||||
|
||||
Wframe-address
|
||||
Wformat-overflow=
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
From 0b82663fd2f054e07e116c4dcc5019f7e969cd3e Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 01:44:20 -0700
|
||||
Subject: [PATCH] Enable -Wtrampolines by default.
|
||||
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.
|
||||
|
||||
---
|
||||
gcc/common.opt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/common.opt b/gcc/common.opt
|
||||
index bea1adc0940..e65a575d9f8 100644
|
||||
index 64c4277c991..c24839d32bc 100644
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -829,7 +829,7 @@ Common Var(warn_tautological_compare) Warning LangEnabledBy(C ObjC C++ ObjC++,Wa
|
||||
Warn if a comparison always evaluates to true or false.
|
||||
@@ -803,7 +803,7 @@ Common Var(warn_system_headers) Warning
|
||||
Do not suppress warnings from system headers.
|
||||
|
||||
Wtrampolines
|
||||
-Common Var(warn_trampolines) Warning
|
||||
@@ -21,5 +21,5 @@ index bea1adc0940..e65a575d9f8 100644
|
||||
|
||||
Wtrivial-auto-var-init
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
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
|
||||
-ffreestanding Change the buffer size.
|
||||
|
||||
---
|
||||
gcc/gcc.cc | 8 +++++++-
|
||||
gcc/params.opt | 2 +-
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index da6417dd0d1..b5a6f200635 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -983,6 +983,12 @@ proper position among the other output files. */
|
||||
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
|
||||
#endif
|
||||
|
||||
+#ifdef ENABLE_DEFAULT_SSP
|
||||
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
|
||||
+#else
|
||||
+#define NO_SSP_SPEC ""
|
||||
+#endif
|
||||
+
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
@@ -1282,7 +1288,7 @@ static const char *cc1_options =
|
||||
%{-version:--version}\
|
||||
%{-help=*:--help=%*}\
|
||||
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
|
||||
- %{fsyntax-only:-o %j} %{-param*}\
|
||||
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
|
||||
%{coverage:-fprofile-arcs -ftest-coverage}\
|
||||
%{fprofile-arcs|fprofile-generate*|coverage:\
|
||||
%{!fprofile-update=single:\
|
||||
diff --git a/gcc/params.opt b/gcc/params.opt
|
||||
index 823cdb2ff85..5b096899b40 100644
|
||||
--- a/gcc/params.opt
|
||||
+++ b/gcc/params.opt
|
||||
@@ -1006,7 +1006,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
|
||||
The maximum number of SSA_NAME assignments to follow in determining a value.
|
||||
|
||||
-param=ssp-buffer-size=
|
||||
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
|
||||
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
|
||||
The lower bound for a buffer to be considered for stack smashing protection.
|
||||
|
||||
-param=stack-clash-protection-guard-size=
|
||||
--
|
||||
2.41.0
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
From 3acf32fc94fd447874b2f1447a19a65f0905bff5 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 01:49:03 -0700
|
||||
Subject: [PATCH] gcc: disable SSP on -ffreestanding, -nostdlib and
|
||||
-nodefaultlibs
|
||||
|
||||
---
|
||||
gcc/gcc.cc | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
||||
index fc9c7d15b04..7b0d3d2743b 100644
|
||||
--- a/gcc/gcc.cc
|
||||
+++ b/gcc/gcc.cc
|
||||
@@ -1009,6 +1009,12 @@ proper position among the other output files. */
|
||||
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
|
||||
#endif
|
||||
|
||||
+#ifdef ENABLE_DEFAULT_SSP
|
||||
+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
|
||||
+#else
|
||||
+#define NO_SSP_SPEC ""
|
||||
+#endif
|
||||
+
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
@@ -1314,7 +1320,7 @@ static const char *cc1_options =
|
||||
%{-version:--version}\
|
||||
%{-help=*:--help=%*}\
|
||||
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
|
||||
- %{fsyntax-only:-o %j} %{-param*}\
|
||||
+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
|
||||
%{coverage:-fprofile-arcs -ftest-coverage}\
|
||||
%{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
|
||||
%{!fprofile-update=single:\
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+5
-5
@@ -1,8 +1,8 @@
|
||||
From f89d8e95b809d02eceee416b463200c9abb2b33e Mon Sep 17 00:00:00 2001
|
||||
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] Ensure that msgfmt doesn't encounter problems during gcc
|
||||
bootstrapping.
|
||||
Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
|
||||
gcc bootstrapping.
|
||||
|
||||
Solves error messages like the following:
|
||||
|
||||
@@ -26,7 +26,7 @@ https://bugs.gentoo.org/295480
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
|
||||
index 7f84a99533e..a4c6284f788 100644
|
||||
index 12d34910830..61b13762b71 100644
|
||||
--- a/libstdc++-v3/po/Makefile.am
|
||||
+++ b/libstdc++-v3/po/Makefile.am
|
||||
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
|
||||
@@ -50,5 +50,5 @@ index 8e93445acd2..d6ff06e5ddb 100644
|
||||
|
||||
all-local: all-local-$(USE_NLS)
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From bb98973bdb5fe8bd040e238afe92845203929b59 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@ariadne.space>
|
||||
Date: Fri, 25 Jul 2025 01:50:42 -0700
|
||||
Subject: [PATCH] gcc: params: set default ssp-buffer-size to 4
|
||||
|
||||
---
|
||||
gcc/params.opt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/params.opt b/gcc/params.opt
|
||||
index 64e453d29b7..bba3fd574f2 100644
|
||||
--- a/gcc/params.opt
|
||||
+++ b/gcc/params.opt
|
||||
@@ -1064,7 +1064,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
|
||||
The maximum number of SSA_NAME assignments to follow in determining a value.
|
||||
|
||||
-param=ssp-buffer-size=
|
||||
-Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
|
||||
+Common Joined UInteger Var(param_ssp_buffer_size) Init(4) IntegerRange(1, 65536) Param Optimization
|
||||
The lower bound for a buffer to be considered for stack smashing protection.
|
||||
|
||||
-param=stack-clash-protection-guard-size=
|
||||
--
|
||||
2.50.1
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
From b45303198567828a5240baf932a8c13255f35d20 Mon Sep 17 00:00:00 2001
|
||||
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] Don't declare asprintf if defined as a macro.
|
||||
Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
|
||||
|
||||
---
|
||||
include/libiberty.h | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/include/libiberty.h b/include/libiberty.h
|
||||
index d4e8791b14b..c074980ed80 100644
|
||||
index 1d5c779fcff..19e3cb1e31c 100644
|
||||
--- a/include/libiberty.h
|
||||
+++ b/include/libiberty.h
|
||||
@@ -678,8 +678,11 @@ extern void *bsearch_r (const void *, const void *,
|
||||
@@ -652,8 +652,11 @@ extern void *bsearch_r (const void *, const void *,
|
||||
/* Like sprintf but provides a pointer to malloc'd storage, which must
|
||||
be freed by the caller. */
|
||||
|
||||
@@ -24,5 +24,5 @@ index d4e8791b14b..c074980ed80 100644
|
||||
/* Like asprintf but allocates memory without fail. This works like
|
||||
xmalloc. */
|
||||
--
|
||||
2.50.1
|
||||
2.41.0
|
||||
|
||||
Loaded 100 of 4890 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user