Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50f78961c5 | ||
|
|
48bb4c6b2f | ||
|
|
97475c024a |
No files matched your search
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if grep -r 'INSTALL_DTBS_PATH="$pkgdir"/usr/share/dtb'; then
|
||||
echo 'Please do not install dtbs to /usr/share/dtb!'
|
||||
echo 'Unless you have a good reason not to, please put them in /boot/dtbs'
|
||||
exit 1
|
||||
fi
|
||||
@@ -16,18 +16,20 @@ def device_dependency_check(apkbuild, path):
|
||||
""" Raise an error if a device package has a dependency that is not allowed
|
||||
(e.g. because it should be in a subpackage instead). """
|
||||
|
||||
# asus-me176c: without this, the device will simply run the broken ACPI
|
||||
# DSDT table, so we might as well update it. See pmaports!699.
|
||||
firmware_ok = {"device-asus-me176c": ["firmware-asus-me176c-acpi"]}
|
||||
|
||||
pkgname = apkbuild["pkgname"]
|
||||
for depend in apkbuild["depends"]:
|
||||
if depend == "linux-firmware-none":
|
||||
continue
|
||||
if (depend.startswith("firmware-") or
|
||||
depend.startswith("linux-firmware")):
|
||||
if pkgname in firmware_ok and depend in firmware_ok[pkgname]:
|
||||
continue
|
||||
raise RuntimeError("Firmware package '" + depend + "' found in"
|
||||
" depends of " + path + ". These go into"
|
||||
" subpackages now, see"
|
||||
" <https://postmarketos.org/devicepkg>.")
|
||||
if depend == "mesa-dri-gallium":
|
||||
raise RuntimeError(f"{path}: mesa-dri-gallium shouldn't be in"
|
||||
" depends anymore (see pmaports!3478)")
|
||||
|
||||
|
||||
def test_aports_device(args):
|
||||
@@ -81,7 +83,7 @@ def test_aports_device_kernel(args):
|
||||
# Parse kernels from depends
|
||||
kernels_depends = []
|
||||
for depend in apkbuild["depends"]:
|
||||
if not depend.startswith("linux-") or depend.startswith("linux-firmware-"):
|
||||
if not depend.startswith("linux-"):
|
||||
continue
|
||||
kernels_depends.append(depend)
|
||||
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import glob
|
||||
import os
|
||||
import pytest
|
||||
import re
|
||||
import sys
|
||||
import os
|
||||
|
||||
import add_pmbootstrap_to_import_path
|
||||
import pmb.parse
|
||||
@@ -32,8 +31,6 @@ def test_deviceinfo(args):
|
||||
# Iterate over all devices
|
||||
last_exception = None
|
||||
count = 0
|
||||
pattern = re.compile("^deviceinfo_[a-zA-Z0-9_]*=\".*\"$")
|
||||
|
||||
for folder in glob.glob(args.aports + "/device/*/device-*"):
|
||||
device = folder[len(args.aports):].split("-", 1)[1]
|
||||
|
||||
@@ -42,26 +39,11 @@ def test_deviceinfo(args):
|
||||
f.close()
|
||||
|
||||
try:
|
||||
# variable can not be empty
|
||||
for line in lines:
|
||||
# Require space after # for comments
|
||||
if line.startswith("#") and not line.startswith("# "):
|
||||
raise RuntimeError("Comment style: please change '#' to"
|
||||
f" '# ': {line}")
|
||||
|
||||
# Skip empty lines and comments
|
||||
if not line or line.startswith("# "):
|
||||
continue
|
||||
|
||||
# Variable can not be empty
|
||||
if '=""' in line:
|
||||
raise RuntimeError("Please remove the empty variable: " + line)
|
||||
|
||||
# Check line against regex (can't use multiple lines etc.)
|
||||
if not pattern.match(line) or line.endswith("\\\""):
|
||||
raise RuntimeError("Line looks invalid, maybe missing"
|
||||
" quotes/multi-line string/comment next"
|
||||
f" to line instead of above? {line}")
|
||||
|
||||
# Successful deviceinfo parsing / obsolete options
|
||||
info = pmb.parse.deviceinfo(args, device)
|
||||
deviceinfo_obsolete(info)
|
||||
|
||||
@@ -34,9 +34,9 @@ def test_aports_kernel(args):
|
||||
" pmbootstrap installs cross-compiler"
|
||||
" automatically.")
|
||||
|
||||
# check some options only for main and community devices
|
||||
# nftables support in kernels used by main and community devices
|
||||
for dir in ["main", "device/main", "device/community"]:
|
||||
if path.startswith(f"{args.aports}/{dir}"):
|
||||
if "pmb:kconfigcheck-community" not in apkbuild["options"]:
|
||||
raise RuntimeError(f"{aport_name}: \"pmb:kconfigcheck-community\" missing in"
|
||||
" options= line, required for all community/main devices.")
|
||||
assert pmb.parse.kconfig.check(args,
|
||||
aport_name.replace("linux-", ""),
|
||||
force_nftables_check=True)
|
||||
@@ -66,23 +66,22 @@ def test_aports_unreferenced_files(args):
|
||||
apkbuild = pmb.parse.apkbuild(apkbuild_path)
|
||||
sources_chk = parse_source_from_checksums(args, apkbuild_path)
|
||||
|
||||
# Collect files from subpackages
|
||||
# Collect install files from subpackages
|
||||
subpackage_installs = []
|
||||
subpackage_triggers = []
|
||||
if apkbuild["subpackages"]:
|
||||
for subpackage in apkbuild["subpackages"].values():
|
||||
if not subpackage:
|
||||
continue
|
||||
subpackage_installs += subpackage.get("install", [])
|
||||
subpackage_triggers += subpackage.get("triggers", [])
|
||||
print(subpackage_installs)
|
||||
if "device-nokia-n900-nonfree-firmware.post-install" in subpackage_installs:
|
||||
print(subpackage)
|
||||
try:
|
||||
subpackage_installs += subpackage["install"]
|
||||
except KeyError:
|
||||
continue
|
||||
|
||||
# Collect trigger files
|
||||
trigger_sources = []
|
||||
for trigger in apkbuild["triggers"] + subpackage_triggers:
|
||||
trigger_sources.append(trigger.split("=")[0])
|
||||
if apkbuild["triggers"]:
|
||||
for trigger in apkbuild["triggers"]:
|
||||
trigger_sources.append(trigger.split("=")[0])
|
||||
|
||||
dirname = os.path.dirname(apkbuild_path)
|
||||
for file in glob.iglob(dirname + "/**", recursive=True):
|
||||
|
||||
@@ -71,7 +71,6 @@ aports-static:
|
||||
script:
|
||||
- su pmos -c ".ci/run_testcases.sh"
|
||||
- su pmos -c ".ci/check_changed_aports_versions.py"
|
||||
- su pmos -c ".ci/check-dtb-install-location.sh"
|
||||
artifacts:
|
||||
when: on_failure
|
||||
paths:
|
||||
@@ -104,16 +103,6 @@ aport-lint:
|
||||
- merge_requests
|
||||
allow_failure: true
|
||||
|
||||
# check if nftable configs are valid
|
||||
nftables-check:
|
||||
stage: lint
|
||||
<<: *only-default
|
||||
before_script:
|
||||
- apk -q add nftables
|
||||
script:
|
||||
- find -iname "*.nft" -type f -exec mv {} /etc/nftables.d \;
|
||||
- nft -c -f "/etc/nftables.nft"
|
||||
|
||||
# kernel kconfig check
|
||||
kernel-kconfig:
|
||||
stage: lint
|
||||
|
||||
@@ -8,7 +8,7 @@ CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
|
||||
|
||||
pkgname=binutils-aarch64
|
||||
pkgver=2.39
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
pkgdesc="Tools necessary to build programs for aarch64 targets"
|
||||
url="https://www.gnu.org/software/binutils/"
|
||||
makedepends_build="bison flex texinfo"
|
||||
@@ -23,7 +23,6 @@ source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
|
||||
ld-bfd-mips.patch
|
||||
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
|
||||
binutils-mips-disable-assert.patch
|
||||
CVE-2022-38533.patch
|
||||
"
|
||||
builddir="$srcdir/binutils-$pkgver"
|
||||
|
||||
@@ -38,10 +37,6 @@ if [ "$CHOST" != "$CTARGET" ]; then
|
||||
fi
|
||||
|
||||
# secfixes:
|
||||
# 2.39-r2:
|
||||
# - CVE-2022-38533
|
||||
# 2.39-r0:
|
||||
# - CVE-2022-38126
|
||||
# 2.35.2-r1:
|
||||
# - CVE-2021-3487
|
||||
# 2.32-r0:
|
||||
@@ -151,5 +146,4 @@ f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488
|
||||
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
|
||||
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
|
||||
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
|
||||
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
|
||||
"
|
||||
@@ -1,22 +0,0 @@
|
||||
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
|
||||
|
||||
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
|
||||
index 67aaf158ca1..52027981c3f 100644
|
||||
--- a/bfd/coffcode.h
|
||||
+++ b/bfd/coffcode.h
|
||||
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
|
||||
|
||||
rec = (bfd_byte *) location;
|
||||
recend = rec + count;
|
||||
- while (rec < recend)
|
||||
+ while (recend - rec >= 4)
|
||||
{
|
||||
+ size_t len = bfd_get_32 (abfd, rec);
|
||||
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
|
||||
+ break;
|
||||
+ rec += len * 4;
|
||||
++section->lma;
|
||||
- rec += bfd_get_32 (abfd, rec) * 4;
|
||||
}
|
||||
|
||||
BFD_ASSERT (rec == recend);
|
||||
@@ -8,7 +8,7 @@ CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
|
||||
|
||||
pkgname=binutils-armhf
|
||||
pkgver=2.39
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
pkgdesc="Tools necessary to build programs for armhf targets"
|
||||
url="https://www.gnu.org/software/binutils/"
|
||||
makedepends_build="bison flex texinfo"
|
||||
@@ -23,7 +23,6 @@ source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
|
||||
ld-bfd-mips.patch
|
||||
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
|
||||
binutils-mips-disable-assert.patch
|
||||
CVE-2022-38533.patch
|
||||
"
|
||||
builddir="$srcdir/binutils-$pkgver"
|
||||
|
||||
@@ -38,10 +37,6 @@ if [ "$CHOST" != "$CTARGET" ]; then
|
||||
fi
|
||||
|
||||
# secfixes:
|
||||
# 2.39-r2:
|
||||
# - CVE-2022-38533
|
||||
# 2.39-r0:
|
||||
# - CVE-2022-38126
|
||||
# 2.35.2-r1:
|
||||
# - CVE-2021-3487
|
||||
# 2.32-r0:
|
||||
@@ -151,5 +146,4 @@ f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488
|
||||
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
|
||||
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
|
||||
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
|
||||
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
|
||||
"
|
||||
@@ -1,22 +0,0 @@
|
||||
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
|
||||
|
||||
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
|
||||
index 67aaf158ca1..52027981c3f 100644
|
||||
--- a/bfd/coffcode.h
|
||||
+++ b/bfd/coffcode.h
|
||||
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
|
||||
|
||||
rec = (bfd_byte *) location;
|
||||
recend = rec + count;
|
||||
- while (rec < recend)
|
||||
+ while (recend - rec >= 4)
|
||||
{
|
||||
+ size_t len = bfd_get_32 (abfd, rec);
|
||||
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
|
||||
+ break;
|
||||
+ rec += len * 4;
|
||||
++section->lma;
|
||||
- rec += bfd_get_32 (abfd, rec) * 4;
|
||||
}
|
||||
|
||||
BFD_ASSERT (rec == recend);
|
||||
@@ -8,7 +8,7 @@ CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
|
||||
|
||||
pkgname=binutils-armv7
|
||||
pkgver=2.39
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
pkgdesc="Tools necessary to build programs for armv7 targets"
|
||||
url="https://www.gnu.org/software/binutils/"
|
||||
makedepends_build="bison flex texinfo"
|
||||
@@ -23,7 +23,6 @@ source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
|
||||
ld-bfd-mips.patch
|
||||
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
|
||||
binutils-mips-disable-assert.patch
|
||||
CVE-2022-38533.patch
|
||||
"
|
||||
builddir="$srcdir/binutils-$pkgver"
|
||||
|
||||
@@ -38,10 +37,6 @@ if [ "$CHOST" != "$CTARGET" ]; then
|
||||
fi
|
||||
|
||||
# secfixes:
|
||||
# 2.39-r2:
|
||||
# - CVE-2022-38533
|
||||
# 2.39-r0:
|
||||
# - CVE-2022-38126
|
||||
# 2.35.2-r1:
|
||||
# - CVE-2021-3487
|
||||
# 2.32-r0:
|
||||
@@ -151,5 +146,4 @@ f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488
|
||||
314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
|
||||
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
|
||||
609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
|
||||
631726e557524633ace39c597acbc5ac39bfd25f7b292eee1f0b2a80a503f4ff799f027757d12d5a24b2fa3c07c7e14602d8a86d96e19876d6d0d5d1a02817e7 CVE-2022-38533.patch
|
||||
"
|
||||
@@ -1,22 +0,0 @@
|
||||
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=blobdiff_plain;f=bfd%2Fcoffcode.h;h=52027981c3f052d98e043cd0c877f0bb5da97c7f;hp=67aaf158ca1829fe63f0065f31a0b1009b227b36;hb=ef186fe54aa6d281a3ff8a9528417e5cc614c797;hpb=80075150727d653c39e9d037e15c6b87dcef08cd
|
||||
|
||||
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
|
||||
index 67aaf158ca1..52027981c3f 100644
|
||||
--- a/bfd/coffcode.h
|
||||
+++ b/bfd/coffcode.h
|
||||
@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd,
|
||||
|
||||
rec = (bfd_byte *) location;
|
||||
recend = rec + count;
|
||||
- while (rec < recend)
|
||||
+ while (recend - rec >= 4)
|
||||
{
|
||||
+ size_t len = bfd_get_32 (abfd, rec);
|
||||
+ if (len == 0 || len > (size_t) (recend - rec) / 4)
|
||||
+ break;
|
||||
+ rec += len * 4;
|
||||
++section->lma;
|
||||
- rec += bfd_get_32 (abfd, rec) * 4;
|
||||
}
|
||||
|
||||
BFD_ASSERT (rec == recend);
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-aarch64
|
||||
pkgver=1.35.0
|
||||
pkgrel=27
|
||||
pkgrel=24
|
||||
|
||||
_arch="aarch64"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
1df3f1400461a3b9c951be9bf4ade500af9b83b4a11025bb244224cee197753d95471a8373a2f5f45d343599f632629c005dc7eba2c3d558dfbcfa56063ed110 busybox-static-1.35.0-r27-aarch64-edge.apk
|
||||
c8a27c516cd9651250f520c3c0fd582fa8a1144c5e971d81c6054b2b37639390f62d40d95181b081deeba2654b7c23606fa62751d1fcb75b0616b9fd19daf0d8 busybox-static-1.35.0-r24-aarch64-edge.apk
|
||||
"
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-armhf
|
||||
pkgver=1.35.0
|
||||
pkgrel=27
|
||||
pkgrel=24
|
||||
|
||||
_arch="armhf"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
cdc8cfb4e013ad0761d2417fba91f75221d97074705bcd4f8ae7a64d0badadff2340595b5d03ff0e5ca608f543ce85f4ba82820a4fd501ecb758d77432afcf90 busybox-static-1.35.0-r27-armhf-edge.apk
|
||||
cd9f427ee34c435d23d105a34018ed509ff434c5f3aeed1c1c4233d5191150c6a8f39ae1399bd93f0f4300ed93334ed0114fdd48503c122bd4d57ecded099783 busybox-static-1.35.0-r24-armhf-edge.apk
|
||||
"
|
||||
@@ -8,7 +8,7 @@ fi
|
||||
|
||||
pkgname=busybox-static-armv7
|
||||
pkgver=1.35.0
|
||||
pkgrel=27
|
||||
pkgrel=24
|
||||
|
||||
_arch="armv7"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -32,5 +32,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
65678aa673f8fb11d0a68b7d22203ab9ce2795fb6b3d47c117f8cbecf61305316bb0b0de12812df5d7fe2febe0630fd6ca3961434ffe8051da6a0e194c133cb4 busybox-static-1.35.0-r27-armv7-edge.apk
|
||||
45bf57f2d3815d52ea702f99b08d947978f85148c4b6800f7ebf57885697118070c2f872c56fe215ccc5a20c02527e605c020e068a91d1c93d7e77a79d026bb0 busybox-static-1.35.0-r24-armv7-edge.apk
|
||||
"
|
||||
@@ -0,0 +1,26 @@
|
||||
From 7feb681596c4cfa34c769505058aa5bdf31c5131 Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Sun, 30 Aug 2020 17:59:45 +0200
|
||||
Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Taken from Adélie Linux.
|
||||
---
|
||||
libgo/mksigtab.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
|
||||
index bea8739957e..3876002efab 100644
|
||||
--- a/libgo/mksigtab.sh
|
||||
+++ b/libgo/mksigtab.sh
|
||||
@@ -86,7 +86,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
|
||||
checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
|
||||
checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
|
||||
checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
|
||||
-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
|
||||
+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
|
||||
checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
|
||||
checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
|
||||
checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
|
||||
@@ -0,0 +1,24 @@
|
||||
From b6885cf73989161b1b6893b5ae0dafed006d5f13 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 25 Nov 2021 01:47:03 +0000
|
||||
Subject: [PATCH] There are more than one st_{a,m,c}tim fields in struct stat
|
||||
on time64 machines.
|
||||
|
||||
Run the Go-isation on all of them.
|
||||
---
|
||||
libgo/mksysinfo.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 0c52ea5d71a..6fef104cc1c 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -510,7 +510,7 @@ fi
|
||||
|
||||
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
|
||||
# stat_t's time fields on NetBSD.
|
||||
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
|
||||
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
|
||||
if test "${GOOS}" = "netbsd"; then
|
||||
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
|
||||
fi
|
||||
@@ -0,0 +1,24 @@
|
||||
From c7a22e42ae403154a0c0158495b04b0205102041 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 30 Aug 2020 19:27:51 +0200
|
||||
Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
|
||||
|
||||
---
|
||||
libgo/runtime/proc.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
|
||||
index 3a30748d329..a987678fa84 100644
|
||||
--- a/libgo/runtime/proc.c
|
||||
+++ b/libgo/runtime/proc.c
|
||||
@@ -66,6 +66,10 @@ static void gscanstack(G*);
|
||||
|
||||
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
|
||||
|
||||
+/* libucontext does not seem to support tlsbase, undef the macro
|
||||
+ * here to make sure we define initcontext and fixcontext as dummies. */
|
||||
+#undef SETCONTEXT_CLOBBERS_TLS
|
||||
+
|
||||
#ifndef SETCONTEXT_CLOBBERS_TLS
|
||||
|
||||
static inline void
|
||||
@@ -1,22 +1,17 @@
|
||||
From 0631e2b9453b33c42e12a14c11e8257d470016c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 30 Aug 2020 19:17:42 +0200
|
||||
Subject: [PATCH] gcc-go: support libucontext
|
||||
From ef9df74e0c1059e51bb76b1f6d9d4746949d4d34 Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Mon, 31 Aug 2020 08:59:40 +0200
|
||||
Subject: [PATCH] gcc-go: link to libucontext
|
||||
|
||||
This patch allows using gcc-go with libucontext. For this purpose,
|
||||
it unconditionally links gcc-go against -lucontext. Furthermore,
|
||||
it undefines SETCONTEXT_CLOBBERS_TLS in proc.c to prevent usage
|
||||
of makecontext/swapcontext feature that are not support by libucontext.
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
libgo/runtime/proc.c | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 593495e1650..c3e5d489bc0 100644
|
||||
index b96f60e33e2..b564ddbf792 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -52801,7 +52801,7 @@ configure-target-libgo:
|
||||
@@ -52802,7 +52802,7 @@ configure-target-libgo:
|
||||
esac; \
|
||||
module_srcdir=libgo; \
|
||||
rm -f no-such-file || : ; \
|
||||
@@ -25,18 +20,3 @@ index 593495e1650..c3e5d489bc0 100644
|
||||
$$s/$$module_srcdir/configure \
|
||||
--srcdir=$${topdir}/$$module_srcdir \
|
||||
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
|
||||
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
|
||||
index 3a30748d329..a987678fa84 100644
|
||||
--- a/libgo/runtime/proc.c
|
||||
+++ b/libgo/runtime/proc.c
|
||||
@@ -66,6 +66,10 @@ static void gscanstack(G*);
|
||||
|
||||
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
|
||||
|
||||
+/* libucontext does not seem to support tlsbase, undef the macro
|
||||
+ * here to make sure we define initcontext and fixcontext as dummies. */
|
||||
+#undef SETCONTEXT_CLOBBERS_TLS
|
||||
+
|
||||
#ifndef SETCONTEXT_CLOBBERS_TLS
|
||||
|
||||
static inline void
|
||||
+48
-166
@@ -1,199 +1,81 @@
|
||||
From 3b9243b891cc06373639a23ed5717b0d1c2d8ea6 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Tue, 14 Jun 2022 06:13:43 -0700
|
||||
Subject: [PATCH] libgo: permit loff_t and off_t to be macros
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 4655244d80aa67904a88d620361f2d37ea4c8576 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 28 Nov 2021 00:54:37 +0100
|
||||
Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
|
||||
|
||||
They are macros in musl libc, rather than typedefs, and -fgo-dump-spec
|
||||
doesn't handle that case.
|
||||
Without this patch, both off64_t and loff_t are not recognized by
|
||||
-fdump-go-spec which causes a variety Go-related compilation errors on
|
||||
musl libc since the gcc-go frontend expects both off64_t and loff_t to
|
||||
be present.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: Ic9a608fd964a6f78e754aa8e3100aff06ab3dade
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
|
||||
libgo: #include <sys/types.h> when checking for loff_t
|
||||
|
||||
Fixes https://gcc.gnu.org/PR106033
|
||||
Fixes golang/go#53469
|
||||
|
||||
Change-Id: I060021b7bb9334949b567442448abb6822fd6d35
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413214
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Also make sure that autoconf recognizes support for loff_t on musl, by
|
||||
compiling the relevant feature test code with -D_GNU_SOURCE and making
|
||||
it include fcntl.h which defines loff_t on musl.
|
||||
---
|
||||
libgo/config.h.in | 3 +++
|
||||
libgo/configure | 12 ++++++++++--
|
||||
libgo/configure.ac | 11 +++++++++--
|
||||
libgo/go/syscall/libcall_linux.go | 17 +++++++++--------
|
||||
libgo/mksysinfo.sh | 6 +-----
|
||||
libgo/sysinfo.c | 15 ++++++++++++++-
|
||||
6 files changed, 46 insertions(+), 18 deletions(-)
|
||||
libgo/configure | 4 +++-
|
||||
libgo/configure.ac | 4 +++-
|
||||
libgo/sysinfo.c | 21 +++++++++++++++++++++
|
||||
3 files changed, 27 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgo/config.h.in b/libgo/config.h.in
|
||||
index 25b8ab8f9ee..2c3c7469675 100644
|
||||
--- a/libgo/config.h.in
|
||||
+++ b/libgo/config.h.in
|
||||
@@ -70,6 +70,9 @@
|
||||
/* Define to 1 if you have the `fchownat' function. */
|
||||
#undef HAVE_FCHOWNAT
|
||||
|
||||
+/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
+#undef HAVE_FCNTL_H
|
||||
+
|
||||
/* Define to 1 if you have the `futimesat' function. */
|
||||
#undef HAVE_FUTIMESAT
|
||||
|
||||
diff --git a/libgo/configure b/libgo/configure
|
||||
index ffe17c9be55..61a49947eb9 100755
|
||||
index ffe17c9be55..c2dbecef98c 100755
|
||||
--- a/libgo/configure
|
||||
+++ b/libgo/configure
|
||||
@@ -15249,7 +15249,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
|
||||
fi
|
||||
|
||||
|
||||
-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
|
||||
+for ac_header in fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||
@@ -15546,7 +15546,14 @@ _ACEOF
|
||||
@@ -15546,7 +15546,9 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
-ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
|
||||
+
|
||||
+CFLAGS_hold="$CFLAGS"
|
||||
+CFLAGS="$OSCFLAGS $CFLAGS"
|
||||
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "
|
||||
+#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
+
|
||||
+"
|
||||
+CFLAGS_hold=$CFLAGS
|
||||
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
|
||||
if test "x$ac_cv_type_loff_t" = xyes; then :
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@@ -15556,6 +15563,7 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
+CFLAGS="$CFLAGS_hold"
|
||||
|
||||
LIBS_hold="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
diff --git a/libgo/configure.ac b/libgo/configure.ac
|
||||
index 7e2b98ba67c..274fcfc35c7 100644
|
||||
index 7e2b98ba67c..667feae3c03 100644
|
||||
--- a/libgo/configure.ac
|
||||
+++ b/libgo/configure.ac
|
||||
@@ -579,7 +579,7 @@ AC_C_BIGENDIAN
|
||||
|
||||
GCC_CHECK_UNWIND_GETIPINFO
|
||||
|
||||
-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
|
||||
+AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
|
||||
|
||||
AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
|
||||
[#include <netinet/in.h>
|
||||
@@ -601,7 +601,14 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
@@ -601,7 +601,9 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
|
||||
AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
|
||||
AC_TYPE_OFF_T
|
||||
-AC_CHECK_TYPES([loff_t])
|
||||
+
|
||||
+CFLAGS_hold="$CFLAGS"
|
||||
+CFLAGS="$OSCFLAGS $CFLAGS"
|
||||
+AC_CHECK_TYPES([loff_t], [], [], [[
|
||||
+#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
+]])
|
||||
+CFLAGS="$CFLAGS_hold"
|
||||
+CFLAGS_hold=$CFLAGS
|
||||
+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
|
||||
+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
|
||||
|
||||
LIBS_hold="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
|
||||
index 96974bd3269..65eb1a745f7 100644
|
||||
--- a/libgo/go/syscall/libcall_linux.go
|
||||
+++ b/libgo/go/syscall/libcall_linux.go
|
||||
@@ -209,19 +209,20 @@ func Gettid() (tid int) {
|
||||
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
|
||||
//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
|
||||
|
||||
-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
|
||||
-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
|
||||
+//sys splice(rfd int, roff *_libgo_loff_t_type, wfd int, woff *_libgo_loff_t_type, len int, flags int) (n int64, err error)
|
||||
+//splice(rfd _C_int, roff *_libgo_loff_t_type, wfd _C_int, woff *_libgo_loff_t_type, len Size_t, flags _C_uint) Ssize_t
|
||||
+
|
||||
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
|
||||
- var lroff _loff_t
|
||||
- var plroff *_loff_t
|
||||
+ var lroff _libgo_loff_t_type
|
||||
+ var plroff *_libgo_loff_t_type
|
||||
if roff != nil {
|
||||
- lroff = _loff_t(*roff)
|
||||
+ lroff = _libgo_loff_t_type(*roff)
|
||||
plroff = &lroff
|
||||
}
|
||||
- var lwoff _loff_t
|
||||
- var plwoff *_loff_t
|
||||
+ var lwoff _libgo_loff_t_type
|
||||
+ var plwoff *_libgo_loff_t_type
|
||||
if woff != nil {
|
||||
- lwoff = _loff_t(*woff)
|
||||
+ lwoff = _libgo_loff_t_type(*woff)
|
||||
plwoff = &lwoff
|
||||
}
|
||||
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 0c52ea5d71a..5aa309155c3 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -403,11 +403,7 @@ fi
|
||||
# Some basic types.
|
||||
echo 'type Size_t _size_t' >> ${OUT}
|
||||
echo "type Ssize_t _ssize_t" >> ${OUT}
|
||||
-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then
|
||||
- echo "type Offset_t _off64_t" >> ${OUT}
|
||||
-else
|
||||
- echo "type Offset_t _off_t" >> ${OUT}
|
||||
-fi
|
||||
+echo "type Offset_t _libgo_off_t_type" >> ${OUT}
|
||||
echo "type Mode_t _mode_t" >> ${OUT}
|
||||
echo "type Pid_t _pid_t" >> ${OUT}
|
||||
echo "type Uid_t _uid_t" >> ${OUT}
|
||||
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
|
||||
index 336a5983750..fc0210992fa 100644
|
||||
index 8ce061e2f5f..b85add15a7b 100644
|
||||
--- a/libgo/sysinfo.c
|
||||
+++ b/libgo/sysinfo.c
|
||||
@@ -354,6 +354,18 @@ enum {
|
||||
};
|
||||
@@ -343,6 +343,27 @@ enum {
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if defined(HAVE_LOFF_T)
|
||||
+// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
|
||||
+// see a typedef.
|
||||
+typedef loff_t libgo_loff_t_type;
|
||||
+// musl libc has both off64_t and loff_t. However, both of these types
|
||||
+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
|
||||
+// -fdump-go-spec option, which is responsible for generating type
|
||||
+// definitions for Go based on this file, only recognizes types defined
|
||||
+// through typedefs.
|
||||
+//
|
||||
+// For this reason, we check here if either off64_t or loff_t are
|
||||
+// defined as CPP macros and if so, we redefine them using a C typedef.
|
||||
+#if defined(HAVE_OFF64_T) && defined(off64_t)
|
||||
+typedef off64_t __musl_off64_t;
|
||||
+#undef off64_t
|
||||
+typedef __musl_off64_t off64_t;
|
||||
+#endif
|
||||
+
|
||||
+#if defined(HAVE_OFF64_T)
|
||||
+typedef off64_t libgo_off_t_type;
|
||||
+#else
|
||||
+typedef off_t libgo_off_t_type;
|
||||
+// See comment regarding musl libc above.
|
||||
+#if defined(HAVE_LOFF_T) && defined(loff_t)
|
||||
+typedef loff_t __musl_loff_t;
|
||||
+#undef loff_t
|
||||
+typedef __musl_loff_t loff_t;
|
||||
+#endif
|
||||
+
|
||||
// The following section introduces explicit references to types and
|
||||
// constants of interest to support bootstrapping libgo using a
|
||||
// compiler that doesn't support -fdump-go-spec (e.g., clang), via
|
||||
@@ -534,7 +546,8 @@ SREF(timex);
|
||||
// From sys/types.h
|
||||
TREF(pid_t);
|
||||
TREF(off_t);
|
||||
-TREF(loff_t);
|
||||
+TREF(libgo_loff_t_type);
|
||||
+TREF(libgo_off_t_type);
|
||||
TREF(size_t);
|
||||
TREF(ssize_t);
|
||||
TREF(mode_t);
|
||||
// SIOCGIFMTU can't be added in the above enum as it might
|
||||
// be signed in some OSes.
|
||||
#ifdef SIOCGIFMTU
|
||||
@@ -1,22 +1,43 @@
|
||||
From 4b6240d5301ce04b8bbc3e2152915cbc7da80584 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Wed, 28 Sep 2022 17:30:14 +0200
|
||||
Subject: [PATCH] libgo: use _off_t for mmap offset argument
|
||||
From 76c13560bba3534bff335e5bb571a8b95d50d4ba Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Sun, 30 Aug 2020 18:33:49 +0200
|
||||
Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
On glibc-based systems, off_t is a 32-bit type on 32-bit systems and a
|
||||
64-bit type on 64-bit systems by default. However, on systems using musl
|
||||
libc off_t is unconditionally a 64-bit type. As such, it is insufficient
|
||||
to use a uintptr type for the mmap offset parameter.
|
||||
Without this patch, Go run-time memory allocation fails on 32-bit architectures:
|
||||
|
||||
Presently, the (incorrect) mmap declaration causes a libgo run-time
|
||||
failure on 32-bit musl systems (fatal error: runtime: cannot allocate
|
||||
memory). This commit fixes this run-time error.
|
||||
fatal error: runtime: cannot allocate memory
|
||||
runtime stack:
|
||||
runtime.dopanic__m
|
||||
:0
|
||||
runtime.throw
|
||||
:0
|
||||
:0
|
||||
:0
|
||||
runtime.systemstack
|
||||
:0
|
||||
runtime.addrRanges.init
|
||||
:0
|
||||
runtime.pageAlloc.init
|
||||
:0
|
||||
runtime.mheap.init
|
||||
:0
|
||||
runtime.schedinit
|
||||
:0
|
||||
:0
|
||||
:0
|
||||
|
||||
Taken from Adélie Linux [1].
|
||||
|
||||
[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
|
||||
---
|
||||
libgo/go/runtime/mem_gccgo.go | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
|
||||
index fa3389d8..07bf325a 100644
|
||||
index fa3389d857e..57bed97c710 100644
|
||||
--- a/libgo/go/runtime/mem_gccgo.go
|
||||
+++ b/libgo/go/runtime/mem_gccgo.go
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
@@ -24,16 +45,16 @@ index fa3389d8..07bf325a 100644
|
||||
|
||||
//extern mmap
|
||||
-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer
|
||||
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off _off_t) unsafe.Pointer
|
||||
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer
|
||||
|
||||
//extern munmap
|
||||
func munmap(addr unsafe.Pointer, length uintptr) int32
|
||||
@@ -38,7 +38,7 @@ func init() {
|
||||
@@ -37,7 +37,7 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
|
||||
- p := sysMmap(addr, n, prot, flags, fd, off)
|
||||
+ p := sysMmap(addr, n, prot, flags, fd, _off_t(off))
|
||||
-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
|
||||
+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) {
|
||||
p := sysMmap(addr, n, prot, flags, fd, off)
|
||||
if uintptr(p) == _MAP_FAILED {
|
||||
return nil, errno()
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
From cf41d579088e1c0b5c33c93657ad041e797b5905 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
|
||||
Date: Sun, 2 Jan 2022 01:07:03 +0100
|
||||
Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Both glibc and musl libc declare pt_regs as an incomplete type. This
|
||||
type has to be completed by inclusion of another header. On Linux, the
|
||||
asm/ptrace.h header file provides this type definition. Without
|
||||
including this header file, it is not possible to access the regs member
|
||||
of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
|
||||
other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
|
||||
asm/ptrace.h is not included by other headers and thus the
|
||||
aforementioned files do not compile without an explicit include of
|
||||
asm/ptrace.h:
|
||||
|
||||
libgo/runtime/go-signal.c: In function 'getSiginfo':
|
||||
libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
|
||||
227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
|
||||
|
|
||||
|
||||
Instead of including the asm/ptrace.h header conditionally on PowerPC
|
||||
only it would alternatively also be possible to include it
|
||||
unconditionally.
|
||||
|
||||
See also:
|
||||
|
||||
* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
|
||||
* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
|
||||
* https://github.com/kaniini/libucontext/issues/36
|
||||
|
||||
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
|
||||
---
|
||||
libgo/runtime/go-signal.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
|
||||
index 528d9b6d9fe..c67503f0a79 100644
|
||||
--- a/libgo/runtime/go-signal.c
|
||||
+++ b/libgo/runtime/go-signal.c
|
||||
@@ -10,6 +10,12 @@
|
||||
#include <sys/time.h>
|
||||
#include <ucontext.h>
|
||||
|
||||
+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
|
||||
+// type. This type must be completed by including asm/ptrace.h.
|
||||
+#ifdef __PPC__
|
||||
+#include <asm/ptrace.h>
|
||||
+#endif
|
||||
+
|
||||
#include "runtime.h"
|
||||
|
||||
#ifndef SA_RESTART
|
||||
@@ -1,71 +1,30 @@
|
||||
From c86b726c048eddc1be320c0bf64a897658bee13d Mon Sep 17 00:00:00 2001
|
||||
From: Uros Bizjak <ubizjak@gmail.com>
|
||||
Date: Wed, 18 May 2022 20:03:26 +0200
|
||||
Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
|
||||
TARGET_CAN_SPLIT_STACK
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From fbc8240ac15225ede8416a27c9978559b85d6877 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Mon, 21 Feb 2022 10:04:47 +0000
|
||||
Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
|
||||
|
||||
Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
|
||||
is only supported on glibc targets. However, this original commit
|
||||
required some fixups. As part of the fixup, the changes to the
|
||||
gnu-user-common.h and gnu.h were partially reverted in commit
|
||||
60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
|
||||
to be defined for non-glibc targets even though -fsplit-stack is
|
||||
actually not supported and attempting to use it causes a runtime error.
|
||||
|
||||
This causes gcc internal code, such as ./gcc/go/gospec.c to not
|
||||
correctly detect that -fsplit-stack is not supported and thus causes
|
||||
gccgo to fail compilation on non-glibc targets.
|
||||
|
||||
This commit ensures that TARGET_CAN_SPLIT_STACK is only set if the
|
||||
default libc is glibc. It is presently unclear to me if there is a
|
||||
better way to detect glibc at pre-processor time.
|
||||
|
||||
The proposed changes have been tested on x86 and x86_64 Alpine Linux
|
||||
(which uses musl libc) and fix compilation of gccgo for this target.
|
||||
|
||||
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
* config/i386/gnu-user-common.h (defined): Only define
|
||||
TARGET_CAN_SPLIT_STACK for glibc targets.
|
||||
* config/i386/gnu.h (defined): Ditto.
|
||||
for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
|
||||
so hackfix it for now
|
||||
---
|
||||
gcc/config/i386/gnu-user-common.h | 5 +++--
|
||||
gcc/config/i386/gnu.h | 5 +++--
|
||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
||||
gcc/go/gospec.cc | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
|
||||
index 23b54c5be52..cab9be2bfb7 100644
|
||||
--- a/gcc/config/i386/gnu-user-common.h
|
||||
+++ b/gcc/config/i386/gnu-user-common.h
|
||||
@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
diff --git a/gcc/go/gospec.cc b/gcc/go/gospec.cc
|
||||
index df92b62d8e6..cf168beb4cf 100644
|
||||
--- a/gcc/go/gospec.cc
|
||||
+++ b/gcc/go/gospec.cc
|
||||
@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
||||
/* Copy the 0th argument, i.e., the name of the program itself. */
|
||||
new_decoded_options[j++] = decoded_options[i++];
|
||||
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
- assembler has full support for the CFI directives. */
|
||||
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
+ assembler has full support for the CFI directives. Also
|
||||
+ we only support -fsplit-stack on glibc targets. */
|
||||
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
-#ifdef TARGET_CAN_SPLIT_STACK
|
||||
+ /* Hackfix: we never support split stack on Alpine GCC */
|
||||
+#if 0
|
||||
supports_split_stack = 1;
|
||||
#endif
|
||||
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
|
||||
index 401e60c9a02..fb8d69a97d8 100644
|
||||
--- a/gcc/config/i386/gnu.h
|
||||
+++ b/gcc/config/i386/gnu.h
|
||||
@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define TARGET_THREAD_SSP_OFFSET 0x14
|
||||
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
- assembler has full support for the CFI directives. */
|
||||
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
+ assembler has full support for the CFI directives. Also
|
||||
+ we only support -fsplit-stack on glibc targets. */
|
||||
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
-#ifdef TARGET_CAN_SPLIT_STACK_64BIT
|
||||
+#if 0
|
||||
if (is_m64)
|
||||
supports_split_stack = 1;
|
||||
#endif
|
||||
/* We steal the last transactional memory word. */
|
||||
@@ -1,41 +1,31 @@
|
||||
From 548720bca6bff21ebc9aba22249d9ce45bbd90c7 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Wed, 29 Jun 2022 15:32:04 -0700
|
||||
Subject: [PATCH] libgo: handle stat st_atim32 field and SYS_SECCOMP
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 38270192ea355d8035d9f1b5fe50e36ca3fa3708 Mon Sep 17 00:00:00 2001
|
||||
From: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Date: Thu, 30 Jun 2022 17:04:23 +0000
|
||||
Subject: [PATCH] gcc-go: fix build error with SYS_SECCOMP
|
||||
|
||||
Patches for musl support, from Sören Tempel.
|
||||
fix the build error:
|
||||
sysinfo.go:6606:7: error: redefinition of 'SYS_SECCOMP'
|
||||
6606 | const SYS_SECCOMP = _SYS_SECCOMP
|
||||
| ^
|
||||
sysinfo.go:6600:7: note: previous definition of 'SYS_SECCOMP' was here
|
||||
6600 | const SYS_SECCOMP = _SYS_seccomp
|
||||
| ^
|
||||
|
||||
Fixes https://gcc.gnu.org/PR105225
|
||||
|
||||
Change-Id: If396877d4a4c7d27962226d7a6e3bb91b1344413
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415294
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105225
|
||||
---
|
||||
libgo/mksysinfo.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
libgo/mksysinfo.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 5aa30915..ea1fa17d 100755
|
||||
index 6fef104cc1c..06289a43bdf 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -127,6 +127,7 @@ fi
|
||||
@@ -126,7 +126,7 @@ if ! grep '^const SIGCLD ' ${OUT} >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
# The syscall numbers. We force the names to upper case.
|
||||
grep '^const _SYS_' gen-sysinfo.go | \
|
||||
+ grep -v '^const _SYS_SECCOMP = ' | \
|
||||
-grep '^const _SYS_' gen-sysinfo.go | \
|
||||
+grep '^const _SYS_[a-z]' gen-sysinfo.go | \
|
||||
sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
|
||||
while read sys; do
|
||||
sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
|
||||
@@ -506,7 +507,7 @@ fi
|
||||
|
||||
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
|
||||
# stat_t's time fields on NetBSD.
|
||||
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
|
||||
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
|
||||
if test "${GOOS}" = "netbsd"; then
|
||||
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
|
||||
fi
|
||||
@@ -0,0 +1,107 @@
|
||||
From 9cef407678b40c20ecc39850c7e43346ad92a60b Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <siarheit@google.com>
|
||||
Date: Mon, 27 Jun 2022 03:31:45 +0100
|
||||
Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
|
||||
|
||||
On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
|
||||
it indirectly and exposes use of poisoned calloc() when module code
|
||||
is built:
|
||||
|
||||
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
|
||||
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
|
||||
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
|
||||
....
|
||||
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
|
||||
from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
|
||||
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
|
||||
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
|
||||
from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
|
||||
84 | void *calloc(size_t, size_t);
|
||||
| ^
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
|
||||
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
|
||||
| ^
|
||||
|
||||
gcc/cp/
|
||||
|
||||
PR c++/106102
|
||||
* mapper-client.cc: Include <memory> via "system.h".
|
||||
* mapper-resolver.cc: Ditto.
|
||||
* module.cc: Ditto.
|
||||
|
||||
libcc1/
|
||||
|
||||
PR c++/106102
|
||||
* libcc1plugin.cc: Include <memory> via "system.h".
|
||||
* libcp1plugin.cc: Ditto.
|
||||
|
||||
(cherry picked from commit 3b21c21f3f5726823e19728fdd1571a14aae0fb3)
|
||||
---
|
||||
gcc/cp/mapper-client.cc | 1 +
|
||||
gcc/cp/mapper-resolver.cc | 1 +
|
||||
gcc/cp/module.cc | 1 +
|
||||
libcc1/libcc1plugin.cc | 1 +
|
||||
libcc1/libcp1plugin.cc | 1 +
|
||||
5 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
|
||||
index 8603a886a09..fe9544b5ba4 100644
|
||||
--- a/gcc/cp/mapper-client.cc
|
||||
+++ b/gcc/cp/mapper-client.cc
|
||||
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define INCLUDE_STRING
|
||||
#define INCLUDE_VECTOR
|
||||
#define INCLUDE_MAP
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "system.h"
|
||||
|
||||
#include "line-map.h"
|
||||
diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
|
||||
index e3d29fb5ada..e70d1b4ae2c 100644
|
||||
--- a/gcc/cp/mapper-resolver.cc
|
||||
+++ b/gcc/cp/mapper-resolver.cc
|
||||
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define INCLUDE_VECTOR
|
||||
#define INCLUDE_ALGORITHM
|
||||
#define INCLUDE_MAP
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "system.h"
|
||||
|
||||
// We don't want or need to be aware of networking
|
||||
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
|
||||
index cebf9c35c1d..5c5d02bb523 100644
|
||||
--- a/gcc/cp/module.cc
|
||||
+++ b/gcc/cp/module.cc
|
||||
@@ -202,6 +202,7 @@ Classes used:
|
||||
|
||||
#define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available. */
|
||||
#include "config.h"
|
||||
+#define INCLUDE_MEMORY
|
||||
#define INCLUDE_STRING
|
||||
#define INCLUDE_VECTOR
|
||||
#include "system.h"
|
||||
diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
|
||||
index 12ab5a57c8d..bdd0bdabe77 100644
|
||||
--- a/libcc1/libcc1plugin.cc
|
||||
+++ b/libcc1/libcc1plugin.cc
|
||||
@@ -31,6 +31,7 @@
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "gcc-plugin.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
|
||||
index 83dab7f58b1..e2d5039a0a1 100644
|
||||
--- a/libcc1/libcp1plugin.cc
|
||||
+++ b/libcc1/libcp1plugin.cc
|
||||
@@ -32,6 +32,7 @@
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "gcc-plugin.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
@@ -0,0 +1,117 @@
|
||||
From f982c816d8f52a65231544b838160484b5ed4c71 Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <siarheit@google.com>
|
||||
Date: Mon, 27 Jun 2022 14:44:48 +0100
|
||||
Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
|
||||
|
||||
On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
|
||||
it directly and exposes use of poisoned calloc():
|
||||
|
||||
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
|
||||
make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
|
||||
make[3]: *** Waiting for unfinished jobs....
|
||||
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
|
||||
from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
|
||||
84 | void *calloc(size_t, size_t);
|
||||
| ^
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
|
||||
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
|
||||
| ^
|
||||
|
||||
The change moves <pthread.h> inclusion to "system.h" under new
|
||||
INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
|
||||
|
||||
gcc/
|
||||
|
||||
PR c++/106102
|
||||
* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
|
||||
|
||||
gcc/jit/
|
||||
|
||||
PR c++/106102
|
||||
* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
|
||||
poisoning.
|
||||
* jit-recording.cc: Ditto.
|
||||
* libgccjit.cc: Ditto.
|
||||
|
||||
(cherry picked from commit 49d508065bdd36fb1a9b6aad9666b1edb5e06474)
|
||||
---
|
||||
gcc/jit/jit-playback.cc | 3 +--
|
||||
gcc/jit/jit-recording.cc | 2 +-
|
||||
gcc/jit/libgccjit.cc | 2 +-
|
||||
gcc/system.h | 4 ++++
|
||||
4 files changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
|
||||
index 6be6bdf8dea..79714132b91 100644
|
||||
--- a/gcc/jit/jit-playback.cc
|
||||
+++ b/gcc/jit/jit-playback.cc
|
||||
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "target.h"
|
||||
@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "diagnostic.h"
|
||||
#include "stmt.h"
|
||||
|
||||
-#include <pthread.h>
|
||||
-
|
||||
#include "jit-playback.h"
|
||||
#include "jit-result.h"
|
||||
#include "jit-builtins.h"
|
||||
diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
|
||||
index a31720f043e..5556b9c4905 100644
|
||||
--- a/gcc/jit/jit-recording.cc
|
||||
+++ b/gcc/jit/jit-recording.cc
|
||||
@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "tm.h"
|
||||
#include "pretty-print.h"
|
||||
#include "toplev.h"
|
||||
|
||||
-#include <pthread.h>
|
||||
|
||||
#include "jit-builtins.h"
|
||||
#include "jit-recording.h"
|
||||
diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
|
||||
index cc6486c9cad..4c991e5436b 100644
|
||||
--- a/gcc/jit/libgccjit.cc
|
||||
+++ b/gcc/jit/libgccjit.cc
|
||||
@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "timevar.h"
|
||||
#include "typed-splay-tree.h"
|
||||
#include "cppbuiltin.h"
|
||||
-#include <pthread.h>
|
||||
|
||||
#include "libgccjit.h"
|
||||
#include "jit-recording.h"
|
||||
diff --git a/gcc/system.h b/gcc/system.h
|
||||
index c5562cc49a3..e10c34f70ec 100644
|
||||
--- a/gcc/system.h
|
||||
+++ b/gcc/system.h
|
||||
@@ -750,6 +750,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifdef INCLUDE_PTHREAD_H
|
||||
+#include <pthread.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef INCLUDE_ISL
|
||||
#ifdef HAVE_isl
|
||||
#include <isl/options.h>
|
||||
@@ -1,108 +1,28 @@
|
||||
From 8f1a91aeff400d572857895b7f5e863ec5a4d93e Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Mon, 26 Sep 2022 15:03:53 -0400
|
||||
Subject: [PATCH] runtime: portable access to sigev_notify_thread_id
|
||||
From d54419ddcc14f52517017147201560da5353c436 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 17 Jul 2022 02:52:13 +0200
|
||||
Subject: [PATCH] libgo: adjust name of union in sigevent struct
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Previously, libgo relied on the _sigev_un implementation-specific
|
||||
field in struct sigevent, which is only available on glibc.
|
||||
This patch uses the sigev_notify_thread_id macro instead which is
|
||||
mandated by timer_create(2). In theory, this should work with any libc
|
||||
implementation for Linux. Unfortunately, there is an open glibc bug
|
||||
as glibc does not define this macro. For this reason, a glibc-specific
|
||||
workaround is required. Other libcs (such as musl) define the macro
|
||||
and don't require the workaround.
|
||||
|
||||
See https://sourceware.org/bugzilla/show_bug.cgi?id=27417
|
||||
|
||||
This makes libgo compatible with musl libc.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: I0924a53d5212730ebc395ecf9199f85967be8cc6
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
The union in struct sigevent is named __sev_fields on musl but
|
||||
_sigev_un on glibc. Not sure what this code actually does and
|
||||
how this works if the union layout is different…
|
||||
---
|
||||
libgo/go/runtime/os_linux.go | 12 +++++++++++-
|
||||
libgo/runtime/go-signal.c | 18 ++++++++++++++++++
|
||||
2 files changed, 29 insertions(+), 1 deletion(-)
|
||||
libgo/go/runtime/os_linux.go | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/go/runtime/os_linux.go b/libgo/go/runtime/os_linux.go
|
||||
index 96fb1788..2b2d827c 100644
|
||||
index 96fb178870e..a75a2dd703f 100644
|
||||
--- a/libgo/go/runtime/os_linux.go
|
||||
+++ b/libgo/go/runtime/os_linux.go
|
||||
@@ -22,6 +22,12 @@ type mOS struct {
|
||||
profileTimerValid uint32
|
||||
}
|
||||
|
||||
+// setSigeventTID is written in C to set the sigev_notify_thread_id
|
||||
+// field of a sigevent struct.
|
||||
+//
|
||||
+//go:noescape
|
||||
+func setSigeventTID(*_sigevent, int32)
|
||||
+
|
||||
func getProcID() uint64 {
|
||||
return uint64(gettid())
|
||||
}
|
||||
@@ -52,9 +58,12 @@ const (
|
||||
)
|
||||
|
||||
// Atomically,
|
||||
+//
|
||||
// if(*addr == val) sleep
|
||||
+//
|
||||
// Might be woken up spuriously; that's allowed.
|
||||
// Don't sleep longer than ns; ns < 0 means forever.
|
||||
+//
|
||||
//go:nosplit
|
||||
func futexsleep(addr *uint32, val uint32, ns int64) {
|
||||
// Some Linux kernels have a bug where futex of
|
||||
@@ -73,6 +82,7 @@ func futexsleep(addr *uint32, val uint32, ns int64) {
|
||||
}
|
||||
|
||||
// If any procs are sleeping on addr, wake up at most cnt.
|
||||
+//
|
||||
//go:nosplit
|
||||
func futexwakeup(addr *uint32, cnt uint32) {
|
||||
ret := futex(unsafe.Pointer(addr), _FUTEX_WAKE_PRIVATE, cnt, nil, nil, 0)
|
||||
@@ -365,7 +375,7 @@ func setThreadCPUProfiler(hz int32) {
|
||||
@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
|
||||
var sevp _sigevent
|
||||
sevp.sigev_notify = _SIGEV_THREAD_ID
|
||||
sevp.sigev_signo = _SIGPROF
|
||||
- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
|
||||
+ setSigeventTID(&sevp, int32(mp.procid))
|
||||
+ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
|
||||
ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
|
||||
if ret != 0 {
|
||||
// If we cannot create a timer for this M, leave profileTimerValid false
|
||||
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
|
||||
index 528d9b6d..aa1b6305 100644
|
||||
--- a/libgo/runtime/go-signal.c
|
||||
+++ b/libgo/runtime/go-signal.c
|
||||
@@ -183,6 +183,24 @@ setSigactionHandler(struct sigaction* sa, uintptr handler)
|
||||
sa->sa_sigaction = (void*)(handler);
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+// Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=27417
|
||||
+#ifndef sigev_notify_thread_id
|
||||
+ #define sigev_notify_thread_id _sigev_un._tid
|
||||
+#endif
|
||||
+
|
||||
+void setSigeventTID(struct sigevent*, int32_t)
|
||||
+ __asm__ (GOSYM_PREFIX "runtime.setSigeventTID");
|
||||
+
|
||||
+void
|
||||
+setSigeventTID(struct sigevent *sev, int32_t v)
|
||||
+{
|
||||
+ sev->sigev_notify_thread_id = v;
|
||||
+}
|
||||
+
|
||||
+#endif // defined(__linux__)
|
||||
+
|
||||
// C code to fetch values from the siginfo_t and ucontext_t pointers
|
||||
// passed to a signal handler.
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
From d53e8a0e94e34dc609e34dd5e404debda2640cfb Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Sat, 30 Jul 2022 07:29:28 -0700
|
||||
Subject: [PATCH] libgo: use SYS_timer_settime32
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 3825632cf4007ac93d8e44705a6da042c496318b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Mon, 18 Jul 2022 20:34:39 +0200
|
||||
Subject: [PATCH] libgo: Explicitly define SYS_timer_settime for 32-bit musl
|
||||
arches
|
||||
|
||||
Musl defines SYS_timer_settime32, not SYS_timer_settime, on 32-bit systems.
|
||||
On 32-bit systems musl only defines SYS_timer_settime32 not
|
||||
SYS_timer_settime. This causes the following compilation error:
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
os_linux.go:251:30: error: reference to undefined name '_SYS_timer_settime'
|
||||
251 | return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
|
||||
| ^
|
||||
|
||||
Change-Id: I1f3485028d132ceca1aba595325af24b4d72b894
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/420222
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
This commit fixes this error by defining SYS_timer_settime to
|
||||
SYS_timer_settime32 if the latter is defined.
|
||||
---
|
||||
libgo/sysinfo.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
libgo/sysinfo.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
|
||||
index fc021099..180f5c31 100644
|
||||
index b85add15a7b..ff04706a993 100644
|
||||
--- a/libgo/sysinfo.c
|
||||
+++ b/libgo/sysinfo.c
|
||||
@@ -354,6 +354,11 @@ enum {
|
||||
};
|
||||
@@ -343,6 +343,12 @@ enum {
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if !defined(SYS_timer_settime) && defined(SYS_timer_settime32)
|
||||
+// musl defines SYS_timer_settim32 on 32-bit systems.
|
||||
+// musl libc does not have SYS_timer_settime on 32-bit platforms
|
||||
+// but defines SYS_timer_settime32 instead, alias accordingly.
|
||||
+#ifdef SYS_timer_settime32
|
||||
+#define SYS_timer_settime SYS_timer_settime32
|
||||
+#endif
|
||||
+
|
||||
#if defined(HAVE_LOFF_T)
|
||||
// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
|
||||
// see a typedef.
|
||||
// musl libc has both off64_t and loff_t. However, both of these types
|
||||
// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
|
||||
// -fdump-go-spec option, which is responsible for generating type
|
||||
@@ -1,29 +1,20 @@
|
||||
From a62f20ae78ddd41be682dde8cab075ca4f5dbb2a Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Fri, 22 Jul 2022 11:38:20 -0700
|
||||
Subject: [PATCH] libgo: use POSIX shell arithmetic expansion
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 75a430f66760802bf1ac5afcd716613e3cf8c77d 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 07:15:25 +0200
|
||||
Subject: [PATCH] libgo: make match.sh POSIX-shell compatible
|
||||
|
||||
Avoid bash-specific ((expression)) syntax. As the bash syntax
|
||||
converts a non-zero value to a zero status (and a zero value to a 1
|
||||
status), and POSIX arithmetic expansion does not, we have to negate
|
||||
the result.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: I4c64fa15de3994a1a5c7c5ec0de6a82ddd858917
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/419154
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
The `(( expression ))` syntax is a Bash extension. However, the
|
||||
arithmetic expressions used by the gobuild() function can also
|
||||
be expressed using Arithmetic POSIX Expansion with `$(( expression ))`.
|
||||
Contrary to the Bash expression, the Arithmetic Expansion doesn't set
|
||||
the return value if the expression is non-zero but instead just prints
|
||||
the expression result. Hence, the expression also needs to be negated.
|
||||
---
|
||||
libgo/match.sh | 2 +-
|
||||
libgo/testsuite/gotest | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
libgo/match.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/match.sh b/libgo/match.sh
|
||||
index 7ed587ff..e5ed98de 100755
|
||||
index 7ed587ff794..b355d47429a 100755
|
||||
--- a/libgo/match.sh
|
||||
+++ b/libgo/match.sh
|
||||
@@ -111,7 +111,7 @@ gobuild() {
|
||||
@@ -31,20 +22,7 @@ index 7ed587ff..e5ed98de 100755
|
||||
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
|
||||
fi
|
||||
- (($line))
|
||||
+ return $((!($line)))
|
||||
+ return $((! ( line )))
|
||||
}
|
||||
|
||||
matched=
|
||||
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
|
||||
index 04e4267f..0a0a7e14 100755
|
||||
--- a/libgo/testsuite/gotest
|
||||
+++ b/libgo/testsuite/gotest
|
||||
@@ -302,7 +302,7 @@ gobuild() {
|
||||
if test "$goarch" != "386"; then
|
||||
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
|
||||
fi
|
||||
- (($line))
|
||||
+ return $((!($line)))
|
||||
}
|
||||
|
||||
case "x$gofiles" in
|
||||
+35
-31
@@ -24,15 +24,14 @@ CBUILDROOT="/"
|
||||
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
|
||||
pkgname=gcc-aarch64
|
||||
_pkgbase=12.2.1 # must match gcc/BASE-VER
|
||||
_pkgsnap=20220924
|
||||
pkgver=${_pkgbase}_git${_pkgsnap}
|
||||
_pkgbase=12.1.1
|
||||
pkgver=12.1.1_git20220630
|
||||
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
|
||||
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
|
||||
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
|
||||
|
||||
pkgname=gcc-aarch64
|
||||
pkgrel=2
|
||||
pkgrel=5
|
||||
pkgdesc="Stage2 cross-compiler for aarch64"
|
||||
url="https://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -41,7 +40,7 @@ _gccrel=$pkgver-r$pkgrel
|
||||
depends="binutils-aarch64 mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
|
||||
subpackages="g++-aarch64:gpp libstdc++-dev-aarch64:libcxx_dev"
|
||||
subpackages="g++-aarch64:gpp"
|
||||
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target"
|
||||
replaces="libstdc++ binutils"
|
||||
|
||||
@@ -54,7 +53,7 @@ replaces="libstdc++ binutils"
|
||||
: "${LANG_JIT:=true}"
|
||||
|
||||
_libgomp=true
|
||||
_libgcc=false
|
||||
_libgcc=true
|
||||
_libatomic=true
|
||||
_libitm=true
|
||||
|
||||
@@ -205,14 +204,11 @@ makedepends="$makedepends_build $makedepends_host"
|
||||
# when using upstream releases, use this URI template
|
||||
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
|
||||
#
|
||||
# right now, we are using a git snapshot. snapshots are taken from gcc.gnu.org/pub/gcc/snapshots.
|
||||
# However, since they are periodically deleted from the GCC mirrors the utilized snapshots are
|
||||
# mirrored on dev.alpinelinux.org. Please ensure that the snapshot Git commit (as stated in the
|
||||
# README) matches the base commit on the version-specific branch in the Git repository below.
|
||||
# right now, we are using a git snapshot.
|
||||
#
|
||||
# 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://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
|
||||
0001-posix_memalign.patch
|
||||
0002-gcc-poison-system-directories.patch
|
||||
0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -242,17 +238,23 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-${_pkgsnap}/gcc-
|
||||
0027-always-build-libgcc_eh.a.patch
|
||||
0028-ada-libgnarl-compatibility-for-musl.patch
|
||||
0029-ada-musl-support-fixes.patch
|
||||
0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
|
||||
0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
|
||||
0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
|
||||
0033-gcc-go-link-to-libucontext.patch
|
||||
0034-Use-generic-errstr.go-implementation-on-musl.patch
|
||||
0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
|
||||
0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
0045-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
|
||||
0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
|
||||
0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
|
||||
0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
@@ -261,7 +263,7 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-${_pkgsnap}/gcc-
|
||||
"
|
||||
|
||||
# we build out-of-tree
|
||||
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-${_pkgsnap}
|
||||
_gccdir="$srcdir"/gcc-$pkgver
|
||||
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
|
||||
@@ -553,16 +555,16 @@ libcxx_dev() {
|
||||
depends=
|
||||
replaces="g++"
|
||||
|
||||
amove usr/${_target:+$CTARGET/}lib/libstdc++.a \
|
||||
usr/${_target:+$CTARGET/}lib/libstdc++.so \
|
||||
usr/${_target:+$CTARGET/}lib/libstdc++fs.a \
|
||||
usr/${_target:+$CTARGET/}lib/libsupc++.a \
|
||||
usr/${_target:+$CTARGET/}include/c++
|
||||
amove usr/lib/libstdc++.a \
|
||||
usr/lib/libstdc++.so \
|
||||
usr/lib/libstdc++fs.a \
|
||||
usr/lib/libsupc++.a \
|
||||
usr/include/c++
|
||||
}
|
||||
|
||||
gpp() {
|
||||
pkgdesc="GNU C++ standard library and compiler"
|
||||
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
|
||||
depends="libstdc++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev"
|
||||
mkdir -p "$subpkgdir/$_gcclibexec" \
|
||||
"$subpkgdir"/usr/bin \
|
||||
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
|
||||
@@ -670,10 +672,6 @@ go() {
|
||||
pkgdesc="Go support for GCC"
|
||||
depends="gcc=$_gccrel libgo=$_gccrel !go"
|
||||
|
||||
# See https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
|
||||
provides="go-bootstrap"
|
||||
provider_priority=1 # lowest, see community/go
|
||||
|
||||
mkdir -p "$subpkgdir"/$_gcclibexec \
|
||||
"$subpkgdir"/usr/lib \
|
||||
"$subpkgdir"/usr/bin
|
||||
@@ -765,7 +763,7 @@ gnat() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ba4d9e73d108088da26fbefe18d9b245b76771ffe752c2b4b31bdf38a2d0b638fbc115c377526c27311d4d7ffd4e0d236a5af5016bd364ccaa11a4989d1401e8 gcc-12-20220924.tar.xz
|
||||
43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz
|
||||
41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch
|
||||
531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch
|
||||
c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -795,20 +793,26 @@ b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc
|
||||
674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch
|
||||
f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch
|
||||
5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch
|
||||
3c04b26554a78096296ca9542c77a91219bd26044dd2cb2006db4c1944889a97c215900b3828ba7e8c675162406db543605a815bdfbd915bf810663b1b253bdd 0033-gcc-go-link-to-libucontext.patch
|
||||
74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
|
||||
9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
|
||||
4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
|
||||
0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch
|
||||
699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch
|
||||
d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
8bc6823f0b3c66f7b73d7ddb64ffa6930463285c2e9a14a2bc1882bcc4271144eaa1107d713294699caf9481648163cbf43921a2b8e4ac0d55c78a804bae8a3d 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
e9699f4721778869eb3a8fef2c679208ef5b98584892f30b0e1cb5dc1669f8158198d7792659b1b56c381baf62247d21990dcced9178547affd5d6bfb2d12548 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
d6dc1bfb881a313d167aaa5658790b0f55eea4336c408cfc6613dd5783440dafd0d37c43031a5f3e69be40f632e38371cd4fb6e5f0494ac4ea4d7d5025d2ae02 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
684c6a6d52512b973429b6e709966439ac1e174f9e79a33d4a638b452245b457b34752b4b4034ba983f6a712f86522e7adf715bab00a6603f64a12139c5b1e39 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
|
||||
a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
c33ca2553642c2dbd1c65cd97046548f08775785a3db06d761e3bbe61398c37bc382fe132c0c3fa2101dfd4eea2a6d48bf4fae899a0ddb811c81abd7be35c122 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
|
||||
03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
|
||||
be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
|
||||
c82d7c8d340a76df3d796565a79b0ccc04ddffef39927620e1f3719bf2dc1db101ba13aef24b46c5bc95b7bf1e31c8bda4ab0936ba4c9c5e5047ba08826c982c 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
22fb6edf1ed0387e2b93839ffe6e82a7fee420950af90e91199c3488d966702fdeb1a3396d22be0c73a4051525da9349c93d070a0d83b724c83f2b268da6483f 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
|
||||
29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
|
||||
"
|
||||
@@ -0,0 +1,26 @@
|
||||
From 7feb681596c4cfa34c769505058aa5bdf31c5131 Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Sun, 30 Aug 2020 17:59:45 +0200
|
||||
Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Taken from Adélie Linux.
|
||||
---
|
||||
libgo/mksigtab.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
|
||||
index bea8739957e..3876002efab 100644
|
||||
--- a/libgo/mksigtab.sh
|
||||
+++ b/libgo/mksigtab.sh
|
||||
@@ -86,7 +86,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
|
||||
checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
|
||||
checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
|
||||
checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
|
||||
-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
|
||||
+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
|
||||
checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
|
||||
checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
|
||||
checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
|
||||
@@ -0,0 +1,24 @@
|
||||
From b6885cf73989161b1b6893b5ae0dafed006d5f13 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 25 Nov 2021 01:47:03 +0000
|
||||
Subject: [PATCH] There are more than one st_{a,m,c}tim fields in struct stat
|
||||
on time64 machines.
|
||||
|
||||
Run the Go-isation on all of them.
|
||||
---
|
||||
libgo/mksysinfo.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 0c52ea5d71a..6fef104cc1c 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -510,7 +510,7 @@ fi
|
||||
|
||||
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
|
||||
# stat_t's time fields on NetBSD.
|
||||
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
|
||||
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
|
||||
if test "${GOOS}" = "netbsd"; then
|
||||
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
|
||||
fi
|
||||
@@ -0,0 +1,24 @@
|
||||
From c7a22e42ae403154a0c0158495b04b0205102041 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 30 Aug 2020 19:27:51 +0200
|
||||
Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
|
||||
|
||||
---
|
||||
libgo/runtime/proc.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
|
||||
index 3a30748d329..a987678fa84 100644
|
||||
--- a/libgo/runtime/proc.c
|
||||
+++ b/libgo/runtime/proc.c
|
||||
@@ -66,6 +66,10 @@ static void gscanstack(G*);
|
||||
|
||||
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
|
||||
|
||||
+/* libucontext does not seem to support tlsbase, undef the macro
|
||||
+ * here to make sure we define initcontext and fixcontext as dummies. */
|
||||
+#undef SETCONTEXT_CLOBBERS_TLS
|
||||
+
|
||||
#ifndef SETCONTEXT_CLOBBERS_TLS
|
||||
|
||||
static inline void
|
||||
@@ -1,22 +1,17 @@
|
||||
From 0631e2b9453b33c42e12a14c11e8257d470016c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 30 Aug 2020 19:17:42 +0200
|
||||
Subject: [PATCH] gcc-go: support libucontext
|
||||
From ef9df74e0c1059e51bb76b1f6d9d4746949d4d34 Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Mon, 31 Aug 2020 08:59:40 +0200
|
||||
Subject: [PATCH] gcc-go: link to libucontext
|
||||
|
||||
This patch allows using gcc-go with libucontext. For this purpose,
|
||||
it unconditionally links gcc-go against -lucontext. Furthermore,
|
||||
it undefines SETCONTEXT_CLOBBERS_TLS in proc.c to prevent usage
|
||||
of makecontext/swapcontext feature that are not support by libucontext.
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
libgo/runtime/proc.c | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 593495e1650..c3e5d489bc0 100644
|
||||
index b96f60e33e2..b564ddbf792 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -52801,7 +52801,7 @@ configure-target-libgo:
|
||||
@@ -52802,7 +52802,7 @@ configure-target-libgo:
|
||||
esac; \
|
||||
module_srcdir=libgo; \
|
||||
rm -f no-such-file || : ; \
|
||||
@@ -25,18 +20,3 @@ index 593495e1650..c3e5d489bc0 100644
|
||||
$$s/$$module_srcdir/configure \
|
||||
--srcdir=$${topdir}/$$module_srcdir \
|
||||
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
|
||||
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
|
||||
index 3a30748d329..a987678fa84 100644
|
||||
--- a/libgo/runtime/proc.c
|
||||
+++ b/libgo/runtime/proc.c
|
||||
@@ -66,6 +66,10 @@ static void gscanstack(G*);
|
||||
|
||||
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
|
||||
|
||||
+/* libucontext does not seem to support tlsbase, undef the macro
|
||||
+ * here to make sure we define initcontext and fixcontext as dummies. */
|
||||
+#undef SETCONTEXT_CLOBBERS_TLS
|
||||
+
|
||||
#ifndef SETCONTEXT_CLOBBERS_TLS
|
||||
|
||||
static inline void
|
||||
@@ -1,199 +1,81 @@
|
||||
From 3b9243b891cc06373639a23ed5717b0d1c2d8ea6 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Tue, 14 Jun 2022 06:13:43 -0700
|
||||
Subject: [PATCH] libgo: permit loff_t and off_t to be macros
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 4655244d80aa67904a88d620361f2d37ea4c8576 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 28 Nov 2021 00:54:37 +0100
|
||||
Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
|
||||
|
||||
They are macros in musl libc, rather than typedefs, and -fgo-dump-spec
|
||||
doesn't handle that case.
|
||||
Without this patch, both off64_t and loff_t are not recognized by
|
||||
-fdump-go-spec which causes a variety Go-related compilation errors on
|
||||
musl libc since the gcc-go frontend expects both off64_t and loff_t to
|
||||
be present.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: Ic9a608fd964a6f78e754aa8e3100aff06ab3dade
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
|
||||
libgo: #include <sys/types.h> when checking for loff_t
|
||||
|
||||
Fixes https://gcc.gnu.org/PR106033
|
||||
Fixes golang/go#53469
|
||||
|
||||
Change-Id: I060021b7bb9334949b567442448abb6822fd6d35
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413214
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Also make sure that autoconf recognizes support for loff_t on musl, by
|
||||
compiling the relevant feature test code with -D_GNU_SOURCE and making
|
||||
it include fcntl.h which defines loff_t on musl.
|
||||
---
|
||||
libgo/config.h.in | 3 +++
|
||||
libgo/configure | 12 ++++++++++--
|
||||
libgo/configure.ac | 11 +++++++++--
|
||||
libgo/go/syscall/libcall_linux.go | 17 +++++++++--------
|
||||
libgo/mksysinfo.sh | 6 +-----
|
||||
libgo/sysinfo.c | 15 ++++++++++++++-
|
||||
6 files changed, 46 insertions(+), 18 deletions(-)
|
||||
libgo/configure | 4 +++-
|
||||
libgo/configure.ac | 4 +++-
|
||||
libgo/sysinfo.c | 21 +++++++++++++++++++++
|
||||
3 files changed, 27 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgo/config.h.in b/libgo/config.h.in
|
||||
index 25b8ab8f9ee..2c3c7469675 100644
|
||||
--- a/libgo/config.h.in
|
||||
+++ b/libgo/config.h.in
|
||||
@@ -70,6 +70,9 @@
|
||||
/* Define to 1 if you have the `fchownat' function. */
|
||||
#undef HAVE_FCHOWNAT
|
||||
|
||||
+/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
+#undef HAVE_FCNTL_H
|
||||
+
|
||||
/* Define to 1 if you have the `futimesat' function. */
|
||||
#undef HAVE_FUTIMESAT
|
||||
|
||||
diff --git a/libgo/configure b/libgo/configure
|
||||
index ffe17c9be55..61a49947eb9 100755
|
||||
index ffe17c9be55..c2dbecef98c 100755
|
||||
--- a/libgo/configure
|
||||
+++ b/libgo/configure
|
||||
@@ -15249,7 +15249,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
|
||||
fi
|
||||
|
||||
|
||||
-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
|
||||
+for ac_header in fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||
@@ -15546,7 +15546,14 @@ _ACEOF
|
||||
@@ -15546,7 +15546,9 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
-ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
|
||||
+
|
||||
+CFLAGS_hold="$CFLAGS"
|
||||
+CFLAGS="$OSCFLAGS $CFLAGS"
|
||||
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "
|
||||
+#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
+
|
||||
+"
|
||||
+CFLAGS_hold=$CFLAGS
|
||||
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
|
||||
if test "x$ac_cv_type_loff_t" = xyes; then :
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@@ -15556,6 +15563,7 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
+CFLAGS="$CFLAGS_hold"
|
||||
|
||||
LIBS_hold="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
diff --git a/libgo/configure.ac b/libgo/configure.ac
|
||||
index 7e2b98ba67c..274fcfc35c7 100644
|
||||
index 7e2b98ba67c..667feae3c03 100644
|
||||
--- a/libgo/configure.ac
|
||||
+++ b/libgo/configure.ac
|
||||
@@ -579,7 +579,7 @@ AC_C_BIGENDIAN
|
||||
|
||||
GCC_CHECK_UNWIND_GETIPINFO
|
||||
|
||||
-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
|
||||
+AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
|
||||
|
||||
AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
|
||||
[#include <netinet/in.h>
|
||||
@@ -601,7 +601,14 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
@@ -601,7 +601,9 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
|
||||
AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
|
||||
AC_TYPE_OFF_T
|
||||
-AC_CHECK_TYPES([loff_t])
|
||||
+
|
||||
+CFLAGS_hold="$CFLAGS"
|
||||
+CFLAGS="$OSCFLAGS $CFLAGS"
|
||||
+AC_CHECK_TYPES([loff_t], [], [], [[
|
||||
+#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
+]])
|
||||
+CFLAGS="$CFLAGS_hold"
|
||||
+CFLAGS_hold=$CFLAGS
|
||||
+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
|
||||
+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
|
||||
|
||||
LIBS_hold="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
|
||||
index 96974bd3269..65eb1a745f7 100644
|
||||
--- a/libgo/go/syscall/libcall_linux.go
|
||||
+++ b/libgo/go/syscall/libcall_linux.go
|
||||
@@ -209,19 +209,20 @@ func Gettid() (tid int) {
|
||||
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
|
||||
//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
|
||||
|
||||
-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
|
||||
-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
|
||||
+//sys splice(rfd int, roff *_libgo_loff_t_type, wfd int, woff *_libgo_loff_t_type, len int, flags int) (n int64, err error)
|
||||
+//splice(rfd _C_int, roff *_libgo_loff_t_type, wfd _C_int, woff *_libgo_loff_t_type, len Size_t, flags _C_uint) Ssize_t
|
||||
+
|
||||
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
|
||||
- var lroff _loff_t
|
||||
- var plroff *_loff_t
|
||||
+ var lroff _libgo_loff_t_type
|
||||
+ var plroff *_libgo_loff_t_type
|
||||
if roff != nil {
|
||||
- lroff = _loff_t(*roff)
|
||||
+ lroff = _libgo_loff_t_type(*roff)
|
||||
plroff = &lroff
|
||||
}
|
||||
- var lwoff _loff_t
|
||||
- var plwoff *_loff_t
|
||||
+ var lwoff _libgo_loff_t_type
|
||||
+ var plwoff *_libgo_loff_t_type
|
||||
if woff != nil {
|
||||
- lwoff = _loff_t(*woff)
|
||||
+ lwoff = _libgo_loff_t_type(*woff)
|
||||
plwoff = &lwoff
|
||||
}
|
||||
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 0c52ea5d71a..5aa309155c3 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -403,11 +403,7 @@ fi
|
||||
# Some basic types.
|
||||
echo 'type Size_t _size_t' >> ${OUT}
|
||||
echo "type Ssize_t _ssize_t" >> ${OUT}
|
||||
-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then
|
||||
- echo "type Offset_t _off64_t" >> ${OUT}
|
||||
-else
|
||||
- echo "type Offset_t _off_t" >> ${OUT}
|
||||
-fi
|
||||
+echo "type Offset_t _libgo_off_t_type" >> ${OUT}
|
||||
echo "type Mode_t _mode_t" >> ${OUT}
|
||||
echo "type Pid_t _pid_t" >> ${OUT}
|
||||
echo "type Uid_t _uid_t" >> ${OUT}
|
||||
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
|
||||
index 336a5983750..fc0210992fa 100644
|
||||
index 8ce061e2f5f..b85add15a7b 100644
|
||||
--- a/libgo/sysinfo.c
|
||||
+++ b/libgo/sysinfo.c
|
||||
@@ -354,6 +354,18 @@ enum {
|
||||
};
|
||||
@@ -343,6 +343,27 @@ enum {
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if defined(HAVE_LOFF_T)
|
||||
+// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
|
||||
+// see a typedef.
|
||||
+typedef loff_t libgo_loff_t_type;
|
||||
+// musl libc has both off64_t and loff_t. However, both of these types
|
||||
+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
|
||||
+// -fdump-go-spec option, which is responsible for generating type
|
||||
+// definitions for Go based on this file, only recognizes types defined
|
||||
+// through typedefs.
|
||||
+//
|
||||
+// For this reason, we check here if either off64_t or loff_t are
|
||||
+// defined as CPP macros and if so, we redefine them using a C typedef.
|
||||
+#if defined(HAVE_OFF64_T) && defined(off64_t)
|
||||
+typedef off64_t __musl_off64_t;
|
||||
+#undef off64_t
|
||||
+typedef __musl_off64_t off64_t;
|
||||
+#endif
|
||||
+
|
||||
+#if defined(HAVE_OFF64_T)
|
||||
+typedef off64_t libgo_off_t_type;
|
||||
+#else
|
||||
+typedef off_t libgo_off_t_type;
|
||||
+// See comment regarding musl libc above.
|
||||
+#if defined(HAVE_LOFF_T) && defined(loff_t)
|
||||
+typedef loff_t __musl_loff_t;
|
||||
+#undef loff_t
|
||||
+typedef __musl_loff_t loff_t;
|
||||
+#endif
|
||||
+
|
||||
// The following section introduces explicit references to types and
|
||||
// constants of interest to support bootstrapping libgo using a
|
||||
// compiler that doesn't support -fdump-go-spec (e.g., clang), via
|
||||
@@ -534,7 +546,8 @@ SREF(timex);
|
||||
// From sys/types.h
|
||||
TREF(pid_t);
|
||||
TREF(off_t);
|
||||
-TREF(loff_t);
|
||||
+TREF(libgo_loff_t_type);
|
||||
+TREF(libgo_off_t_type);
|
||||
TREF(size_t);
|
||||
TREF(ssize_t);
|
||||
TREF(mode_t);
|
||||
// SIOCGIFMTU can't be added in the above enum as it might
|
||||
// be signed in some OSes.
|
||||
#ifdef SIOCGIFMTU
|
||||
@@ -1,22 +1,43 @@
|
||||
From 4b6240d5301ce04b8bbc3e2152915cbc7da80584 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Wed, 28 Sep 2022 17:30:14 +0200
|
||||
Subject: [PATCH] libgo: use _off_t for mmap offset argument
|
||||
From 76c13560bba3534bff335e5bb571a8b95d50d4ba Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Sun, 30 Aug 2020 18:33:49 +0200
|
||||
Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
On glibc-based systems, off_t is a 32-bit type on 32-bit systems and a
|
||||
64-bit type on 64-bit systems by default. However, on systems using musl
|
||||
libc off_t is unconditionally a 64-bit type. As such, it is insufficient
|
||||
to use a uintptr type for the mmap offset parameter.
|
||||
Without this patch, Go run-time memory allocation fails on 32-bit architectures:
|
||||
|
||||
Presently, the (incorrect) mmap declaration causes a libgo run-time
|
||||
failure on 32-bit musl systems (fatal error: runtime: cannot allocate
|
||||
memory). This commit fixes this run-time error.
|
||||
fatal error: runtime: cannot allocate memory
|
||||
runtime stack:
|
||||
runtime.dopanic__m
|
||||
:0
|
||||
runtime.throw
|
||||
:0
|
||||
:0
|
||||
:0
|
||||
runtime.systemstack
|
||||
:0
|
||||
runtime.addrRanges.init
|
||||
:0
|
||||
runtime.pageAlloc.init
|
||||
:0
|
||||
runtime.mheap.init
|
||||
:0
|
||||
runtime.schedinit
|
||||
:0
|
||||
:0
|
||||
:0
|
||||
|
||||
Taken from Adélie Linux [1].
|
||||
|
||||
[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
|
||||
---
|
||||
libgo/go/runtime/mem_gccgo.go | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
|
||||
index fa3389d8..07bf325a 100644
|
||||
index fa3389d857e..57bed97c710 100644
|
||||
--- a/libgo/go/runtime/mem_gccgo.go
|
||||
+++ b/libgo/go/runtime/mem_gccgo.go
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
@@ -24,16 +45,16 @@ index fa3389d8..07bf325a 100644
|
||||
|
||||
//extern mmap
|
||||
-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer
|
||||
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off _off_t) unsafe.Pointer
|
||||
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer
|
||||
|
||||
//extern munmap
|
||||
func munmap(addr unsafe.Pointer, length uintptr) int32
|
||||
@@ -38,7 +38,7 @@ func init() {
|
||||
@@ -37,7 +37,7 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
|
||||
- p := sysMmap(addr, n, prot, flags, fd, off)
|
||||
+ p := sysMmap(addr, n, prot, flags, fd, _off_t(off))
|
||||
-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
|
||||
+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) {
|
||||
p := sysMmap(addr, n, prot, flags, fd, off)
|
||||
if uintptr(p) == _MAP_FAILED {
|
||||
return nil, errno()
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
From cf41d579088e1c0b5c33c93657ad041e797b5905 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
|
||||
Date: Sun, 2 Jan 2022 01:07:03 +0100
|
||||
Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Both glibc and musl libc declare pt_regs as an incomplete type. This
|
||||
type has to be completed by inclusion of another header. On Linux, the
|
||||
asm/ptrace.h header file provides this type definition. Without
|
||||
including this header file, it is not possible to access the regs member
|
||||
of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
|
||||
other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
|
||||
asm/ptrace.h is not included by other headers and thus the
|
||||
aforementioned files do not compile without an explicit include of
|
||||
asm/ptrace.h:
|
||||
|
||||
libgo/runtime/go-signal.c: In function 'getSiginfo':
|
||||
libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
|
||||
227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
|
||||
|
|
||||
|
||||
Instead of including the asm/ptrace.h header conditionally on PowerPC
|
||||
only it would alternatively also be possible to include it
|
||||
unconditionally.
|
||||
|
||||
See also:
|
||||
|
||||
* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
|
||||
* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
|
||||
* https://github.com/kaniini/libucontext/issues/36
|
||||
|
||||
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
|
||||
---
|
||||
libgo/runtime/go-signal.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
|
||||
index 528d9b6d9fe..c67503f0a79 100644
|
||||
--- a/libgo/runtime/go-signal.c
|
||||
+++ b/libgo/runtime/go-signal.c
|
||||
@@ -10,6 +10,12 @@
|
||||
#include <sys/time.h>
|
||||
#include <ucontext.h>
|
||||
|
||||
+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
|
||||
+// type. This type must be completed by including asm/ptrace.h.
|
||||
+#ifdef __PPC__
|
||||
+#include <asm/ptrace.h>
|
||||
+#endif
|
||||
+
|
||||
#include "runtime.h"
|
||||
|
||||
#ifndef SA_RESTART
|
||||
@@ -1,71 +1,30 @@
|
||||
From c86b726c048eddc1be320c0bf64a897658bee13d Mon Sep 17 00:00:00 2001
|
||||
From: Uros Bizjak <ubizjak@gmail.com>
|
||||
Date: Wed, 18 May 2022 20:03:26 +0200
|
||||
Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
|
||||
TARGET_CAN_SPLIT_STACK
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From fbc8240ac15225ede8416a27c9978559b85d6877 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Mon, 21 Feb 2022 10:04:47 +0000
|
||||
Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
|
||||
|
||||
Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
|
||||
is only supported on glibc targets. However, this original commit
|
||||
required some fixups. As part of the fixup, the changes to the
|
||||
gnu-user-common.h and gnu.h were partially reverted in commit
|
||||
60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
|
||||
to be defined for non-glibc targets even though -fsplit-stack is
|
||||
actually not supported and attempting to use it causes a runtime error.
|
||||
|
||||
This causes gcc internal code, such as ./gcc/go/gospec.c to not
|
||||
correctly detect that -fsplit-stack is not supported and thus causes
|
||||
gccgo to fail compilation on non-glibc targets.
|
||||
|
||||
This commit ensures that TARGET_CAN_SPLIT_STACK is only set if the
|
||||
default libc is glibc. It is presently unclear to me if there is a
|
||||
better way to detect glibc at pre-processor time.
|
||||
|
||||
The proposed changes have been tested on x86 and x86_64 Alpine Linux
|
||||
(which uses musl libc) and fix compilation of gccgo for this target.
|
||||
|
||||
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
* config/i386/gnu-user-common.h (defined): Only define
|
||||
TARGET_CAN_SPLIT_STACK for glibc targets.
|
||||
* config/i386/gnu.h (defined): Ditto.
|
||||
for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
|
||||
so hackfix it for now
|
||||
---
|
||||
gcc/config/i386/gnu-user-common.h | 5 +++--
|
||||
gcc/config/i386/gnu.h | 5 +++--
|
||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
||||
gcc/go/gospec.cc | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
|
||||
index 23b54c5be52..cab9be2bfb7 100644
|
||||
--- a/gcc/config/i386/gnu-user-common.h
|
||||
+++ b/gcc/config/i386/gnu-user-common.h
|
||||
@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
diff --git a/gcc/go/gospec.cc b/gcc/go/gospec.cc
|
||||
index df92b62d8e6..cf168beb4cf 100644
|
||||
--- a/gcc/go/gospec.cc
|
||||
+++ b/gcc/go/gospec.cc
|
||||
@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
||||
/* Copy the 0th argument, i.e., the name of the program itself. */
|
||||
new_decoded_options[j++] = decoded_options[i++];
|
||||
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
- assembler has full support for the CFI directives. */
|
||||
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
+ assembler has full support for the CFI directives. Also
|
||||
+ we only support -fsplit-stack on glibc targets. */
|
||||
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
-#ifdef TARGET_CAN_SPLIT_STACK
|
||||
+ /* Hackfix: we never support split stack on Alpine GCC */
|
||||
+#if 0
|
||||
supports_split_stack = 1;
|
||||
#endif
|
||||
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
|
||||
index 401e60c9a02..fb8d69a97d8 100644
|
||||
--- a/gcc/config/i386/gnu.h
|
||||
+++ b/gcc/config/i386/gnu.h
|
||||
@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define TARGET_THREAD_SSP_OFFSET 0x14
|
||||
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
- assembler has full support for the CFI directives. */
|
||||
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
+ assembler has full support for the CFI directives. Also
|
||||
+ we only support -fsplit-stack on glibc targets. */
|
||||
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
-#ifdef TARGET_CAN_SPLIT_STACK_64BIT
|
||||
+#if 0
|
||||
if (is_m64)
|
||||
supports_split_stack = 1;
|
||||
#endif
|
||||
/* We steal the last transactional memory word. */
|
||||
@@ -1,41 +1,31 @@
|
||||
From 548720bca6bff21ebc9aba22249d9ce45bbd90c7 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Wed, 29 Jun 2022 15:32:04 -0700
|
||||
Subject: [PATCH] libgo: handle stat st_atim32 field and SYS_SECCOMP
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 38270192ea355d8035d9f1b5fe50e36ca3fa3708 Mon Sep 17 00:00:00 2001
|
||||
From: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Date: Thu, 30 Jun 2022 17:04:23 +0000
|
||||
Subject: [PATCH] gcc-go: fix build error with SYS_SECCOMP
|
||||
|
||||
Patches for musl support, from Sören Tempel.
|
||||
fix the build error:
|
||||
sysinfo.go:6606:7: error: redefinition of 'SYS_SECCOMP'
|
||||
6606 | const SYS_SECCOMP = _SYS_SECCOMP
|
||||
| ^
|
||||
sysinfo.go:6600:7: note: previous definition of 'SYS_SECCOMP' was here
|
||||
6600 | const SYS_SECCOMP = _SYS_seccomp
|
||||
| ^
|
||||
|
||||
Fixes https://gcc.gnu.org/PR105225
|
||||
|
||||
Change-Id: If396877d4a4c7d27962226d7a6e3bb91b1344413
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415294
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105225
|
||||
---
|
||||
libgo/mksysinfo.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
libgo/mksysinfo.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 5aa30915..ea1fa17d 100755
|
||||
index 6fef104cc1c..06289a43bdf 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -127,6 +127,7 @@ fi
|
||||
@@ -126,7 +126,7 @@ if ! grep '^const SIGCLD ' ${OUT} >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
# The syscall numbers. We force the names to upper case.
|
||||
grep '^const _SYS_' gen-sysinfo.go | \
|
||||
+ grep -v '^const _SYS_SECCOMP = ' | \
|
||||
-grep '^const _SYS_' gen-sysinfo.go | \
|
||||
+grep '^const _SYS_[a-z]' gen-sysinfo.go | \
|
||||
sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
|
||||
while read sys; do
|
||||
sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
|
||||
@@ -506,7 +507,7 @@ fi
|
||||
|
||||
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
|
||||
# stat_t's time fields on NetBSD.
|
||||
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
|
||||
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
|
||||
if test "${GOOS}" = "netbsd"; then
|
||||
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
|
||||
fi
|
||||
@@ -0,0 +1,107 @@
|
||||
From 9cef407678b40c20ecc39850c7e43346ad92a60b Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <siarheit@google.com>
|
||||
Date: Mon, 27 Jun 2022 03:31:45 +0100
|
||||
Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
|
||||
|
||||
On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
|
||||
it indirectly and exposes use of poisoned calloc() when module code
|
||||
is built:
|
||||
|
||||
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
|
||||
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
|
||||
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
|
||||
....
|
||||
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
|
||||
from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
|
||||
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
|
||||
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
|
||||
from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
|
||||
84 | void *calloc(size_t, size_t);
|
||||
| ^
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
|
||||
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
|
||||
| ^
|
||||
|
||||
gcc/cp/
|
||||
|
||||
PR c++/106102
|
||||
* mapper-client.cc: Include <memory> via "system.h".
|
||||
* mapper-resolver.cc: Ditto.
|
||||
* module.cc: Ditto.
|
||||
|
||||
libcc1/
|
||||
|
||||
PR c++/106102
|
||||
* libcc1plugin.cc: Include <memory> via "system.h".
|
||||
* libcp1plugin.cc: Ditto.
|
||||
|
||||
(cherry picked from commit 3b21c21f3f5726823e19728fdd1571a14aae0fb3)
|
||||
---
|
||||
gcc/cp/mapper-client.cc | 1 +
|
||||
gcc/cp/mapper-resolver.cc | 1 +
|
||||
gcc/cp/module.cc | 1 +
|
||||
libcc1/libcc1plugin.cc | 1 +
|
||||
libcc1/libcp1plugin.cc | 1 +
|
||||
5 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
|
||||
index 8603a886a09..fe9544b5ba4 100644
|
||||
--- a/gcc/cp/mapper-client.cc
|
||||
+++ b/gcc/cp/mapper-client.cc
|
||||
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define INCLUDE_STRING
|
||||
#define INCLUDE_VECTOR
|
||||
#define INCLUDE_MAP
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "system.h"
|
||||
|
||||
#include "line-map.h"
|
||||
diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
|
||||
index e3d29fb5ada..e70d1b4ae2c 100644
|
||||
--- a/gcc/cp/mapper-resolver.cc
|
||||
+++ b/gcc/cp/mapper-resolver.cc
|
||||
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define INCLUDE_VECTOR
|
||||
#define INCLUDE_ALGORITHM
|
||||
#define INCLUDE_MAP
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "system.h"
|
||||
|
||||
// We don't want or need to be aware of networking
|
||||
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
|
||||
index cebf9c35c1d..5c5d02bb523 100644
|
||||
--- a/gcc/cp/module.cc
|
||||
+++ b/gcc/cp/module.cc
|
||||
@@ -202,6 +202,7 @@ Classes used:
|
||||
|
||||
#define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available. */
|
||||
#include "config.h"
|
||||
+#define INCLUDE_MEMORY
|
||||
#define INCLUDE_STRING
|
||||
#define INCLUDE_VECTOR
|
||||
#include "system.h"
|
||||
diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
|
||||
index 12ab5a57c8d..bdd0bdabe77 100644
|
||||
--- a/libcc1/libcc1plugin.cc
|
||||
+++ b/libcc1/libcc1plugin.cc
|
||||
@@ -31,6 +31,7 @@
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "gcc-plugin.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
|
||||
index 83dab7f58b1..e2d5039a0a1 100644
|
||||
--- a/libcc1/libcp1plugin.cc
|
||||
+++ b/libcc1/libcp1plugin.cc
|
||||
@@ -32,6 +32,7 @@
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "gcc-plugin.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
@@ -0,0 +1,117 @@
|
||||
From f982c816d8f52a65231544b838160484b5ed4c71 Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <siarheit@google.com>
|
||||
Date: Mon, 27 Jun 2022 14:44:48 +0100
|
||||
Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
|
||||
|
||||
On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
|
||||
it directly and exposes use of poisoned calloc():
|
||||
|
||||
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
|
||||
make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
|
||||
make[3]: *** Waiting for unfinished jobs....
|
||||
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
|
||||
from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
|
||||
84 | void *calloc(size_t, size_t);
|
||||
| ^
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
|
||||
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
|
||||
| ^
|
||||
|
||||
The change moves <pthread.h> inclusion to "system.h" under new
|
||||
INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
|
||||
|
||||
gcc/
|
||||
|
||||
PR c++/106102
|
||||
* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
|
||||
|
||||
gcc/jit/
|
||||
|
||||
PR c++/106102
|
||||
* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
|
||||
poisoning.
|
||||
* jit-recording.cc: Ditto.
|
||||
* libgccjit.cc: Ditto.
|
||||
|
||||
(cherry picked from commit 49d508065bdd36fb1a9b6aad9666b1edb5e06474)
|
||||
---
|
||||
gcc/jit/jit-playback.cc | 3 +--
|
||||
gcc/jit/jit-recording.cc | 2 +-
|
||||
gcc/jit/libgccjit.cc | 2 +-
|
||||
gcc/system.h | 4 ++++
|
||||
4 files changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
|
||||
index 6be6bdf8dea..79714132b91 100644
|
||||
--- a/gcc/jit/jit-playback.cc
|
||||
+++ b/gcc/jit/jit-playback.cc
|
||||
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "target.h"
|
||||
@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "diagnostic.h"
|
||||
#include "stmt.h"
|
||||
|
||||
-#include <pthread.h>
|
||||
-
|
||||
#include "jit-playback.h"
|
||||
#include "jit-result.h"
|
||||
#include "jit-builtins.h"
|
||||
diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
|
||||
index a31720f043e..5556b9c4905 100644
|
||||
--- a/gcc/jit/jit-recording.cc
|
||||
+++ b/gcc/jit/jit-recording.cc
|
||||
@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "tm.h"
|
||||
#include "pretty-print.h"
|
||||
#include "toplev.h"
|
||||
|
||||
-#include <pthread.h>
|
||||
|
||||
#include "jit-builtins.h"
|
||||
#include "jit-recording.h"
|
||||
diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
|
||||
index cc6486c9cad..4c991e5436b 100644
|
||||
--- a/gcc/jit/libgccjit.cc
|
||||
+++ b/gcc/jit/libgccjit.cc
|
||||
@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "timevar.h"
|
||||
#include "typed-splay-tree.h"
|
||||
#include "cppbuiltin.h"
|
||||
-#include <pthread.h>
|
||||
|
||||
#include "libgccjit.h"
|
||||
#include "jit-recording.h"
|
||||
diff --git a/gcc/system.h b/gcc/system.h
|
||||
index c5562cc49a3..e10c34f70ec 100644
|
||||
--- a/gcc/system.h
|
||||
+++ b/gcc/system.h
|
||||
@@ -750,6 +750,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifdef INCLUDE_PTHREAD_H
|
||||
+#include <pthread.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef INCLUDE_ISL
|
||||
#ifdef HAVE_isl
|
||||
#include <isl/options.h>
|
||||
@@ -1,108 +1,28 @@
|
||||
From 8f1a91aeff400d572857895b7f5e863ec5a4d93e Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Mon, 26 Sep 2022 15:03:53 -0400
|
||||
Subject: [PATCH] runtime: portable access to sigev_notify_thread_id
|
||||
From d54419ddcc14f52517017147201560da5353c436 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 17 Jul 2022 02:52:13 +0200
|
||||
Subject: [PATCH] libgo: adjust name of union in sigevent struct
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Previously, libgo relied on the _sigev_un implementation-specific
|
||||
field in struct sigevent, which is only available on glibc.
|
||||
This patch uses the sigev_notify_thread_id macro instead which is
|
||||
mandated by timer_create(2). In theory, this should work with any libc
|
||||
implementation for Linux. Unfortunately, there is an open glibc bug
|
||||
as glibc does not define this macro. For this reason, a glibc-specific
|
||||
workaround is required. Other libcs (such as musl) define the macro
|
||||
and don't require the workaround.
|
||||
|
||||
See https://sourceware.org/bugzilla/show_bug.cgi?id=27417
|
||||
|
||||
This makes libgo compatible with musl libc.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: I0924a53d5212730ebc395ecf9199f85967be8cc6
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
The union in struct sigevent is named __sev_fields on musl but
|
||||
_sigev_un on glibc. Not sure what this code actually does and
|
||||
how this works if the union layout is different…
|
||||
---
|
||||
libgo/go/runtime/os_linux.go | 12 +++++++++++-
|
||||
libgo/runtime/go-signal.c | 18 ++++++++++++++++++
|
||||
2 files changed, 29 insertions(+), 1 deletion(-)
|
||||
libgo/go/runtime/os_linux.go | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/go/runtime/os_linux.go b/libgo/go/runtime/os_linux.go
|
||||
index 96fb1788..2b2d827c 100644
|
||||
index 96fb178870e..a75a2dd703f 100644
|
||||
--- a/libgo/go/runtime/os_linux.go
|
||||
+++ b/libgo/go/runtime/os_linux.go
|
||||
@@ -22,6 +22,12 @@ type mOS struct {
|
||||
profileTimerValid uint32
|
||||
}
|
||||
|
||||
+// setSigeventTID is written in C to set the sigev_notify_thread_id
|
||||
+// field of a sigevent struct.
|
||||
+//
|
||||
+//go:noescape
|
||||
+func setSigeventTID(*_sigevent, int32)
|
||||
+
|
||||
func getProcID() uint64 {
|
||||
return uint64(gettid())
|
||||
}
|
||||
@@ -52,9 +58,12 @@ const (
|
||||
)
|
||||
|
||||
// Atomically,
|
||||
+//
|
||||
// if(*addr == val) sleep
|
||||
+//
|
||||
// Might be woken up spuriously; that's allowed.
|
||||
// Don't sleep longer than ns; ns < 0 means forever.
|
||||
+//
|
||||
//go:nosplit
|
||||
func futexsleep(addr *uint32, val uint32, ns int64) {
|
||||
// Some Linux kernels have a bug where futex of
|
||||
@@ -73,6 +82,7 @@ func futexsleep(addr *uint32, val uint32, ns int64) {
|
||||
}
|
||||
|
||||
// If any procs are sleeping on addr, wake up at most cnt.
|
||||
+//
|
||||
//go:nosplit
|
||||
func futexwakeup(addr *uint32, cnt uint32) {
|
||||
ret := futex(unsafe.Pointer(addr), _FUTEX_WAKE_PRIVATE, cnt, nil, nil, 0)
|
||||
@@ -365,7 +375,7 @@ func setThreadCPUProfiler(hz int32) {
|
||||
@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
|
||||
var sevp _sigevent
|
||||
sevp.sigev_notify = _SIGEV_THREAD_ID
|
||||
sevp.sigev_signo = _SIGPROF
|
||||
- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
|
||||
+ setSigeventTID(&sevp, int32(mp.procid))
|
||||
+ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
|
||||
ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
|
||||
if ret != 0 {
|
||||
// If we cannot create a timer for this M, leave profileTimerValid false
|
||||
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
|
||||
index 528d9b6d..aa1b6305 100644
|
||||
--- a/libgo/runtime/go-signal.c
|
||||
+++ b/libgo/runtime/go-signal.c
|
||||
@@ -183,6 +183,24 @@ setSigactionHandler(struct sigaction* sa, uintptr handler)
|
||||
sa->sa_sigaction = (void*)(handler);
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+// Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=27417
|
||||
+#ifndef sigev_notify_thread_id
|
||||
+ #define sigev_notify_thread_id _sigev_un._tid
|
||||
+#endif
|
||||
+
|
||||
+void setSigeventTID(struct sigevent*, int32_t)
|
||||
+ __asm__ (GOSYM_PREFIX "runtime.setSigeventTID");
|
||||
+
|
||||
+void
|
||||
+setSigeventTID(struct sigevent *sev, int32_t v)
|
||||
+{
|
||||
+ sev->sigev_notify_thread_id = v;
|
||||
+}
|
||||
+
|
||||
+#endif // defined(__linux__)
|
||||
+
|
||||
// C code to fetch values from the siginfo_t and ucontext_t pointers
|
||||
// passed to a signal handler.
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
From d53e8a0e94e34dc609e34dd5e404debda2640cfb Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Sat, 30 Jul 2022 07:29:28 -0700
|
||||
Subject: [PATCH] libgo: use SYS_timer_settime32
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 3825632cf4007ac93d8e44705a6da042c496318b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Mon, 18 Jul 2022 20:34:39 +0200
|
||||
Subject: [PATCH] libgo: Explicitly define SYS_timer_settime for 32-bit musl
|
||||
arches
|
||||
|
||||
Musl defines SYS_timer_settime32, not SYS_timer_settime, on 32-bit systems.
|
||||
On 32-bit systems musl only defines SYS_timer_settime32 not
|
||||
SYS_timer_settime. This causes the following compilation error:
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
os_linux.go:251:30: error: reference to undefined name '_SYS_timer_settime'
|
||||
251 | return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
|
||||
| ^
|
||||
|
||||
Change-Id: I1f3485028d132ceca1aba595325af24b4d72b894
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/420222
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
This commit fixes this error by defining SYS_timer_settime to
|
||||
SYS_timer_settime32 if the latter is defined.
|
||||
---
|
||||
libgo/sysinfo.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
libgo/sysinfo.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
|
||||
index fc021099..180f5c31 100644
|
||||
index b85add15a7b..ff04706a993 100644
|
||||
--- a/libgo/sysinfo.c
|
||||
+++ b/libgo/sysinfo.c
|
||||
@@ -354,6 +354,11 @@ enum {
|
||||
};
|
||||
@@ -343,6 +343,12 @@ enum {
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if !defined(SYS_timer_settime) && defined(SYS_timer_settime32)
|
||||
+// musl defines SYS_timer_settim32 on 32-bit systems.
|
||||
+// musl libc does not have SYS_timer_settime on 32-bit platforms
|
||||
+// but defines SYS_timer_settime32 instead, alias accordingly.
|
||||
+#ifdef SYS_timer_settime32
|
||||
+#define SYS_timer_settime SYS_timer_settime32
|
||||
+#endif
|
||||
+
|
||||
#if defined(HAVE_LOFF_T)
|
||||
// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
|
||||
// see a typedef.
|
||||
// musl libc has both off64_t and loff_t. However, both of these types
|
||||
// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
|
||||
// -fdump-go-spec option, which is responsible for generating type
|
||||
@@ -1,29 +1,20 @@
|
||||
From a62f20ae78ddd41be682dde8cab075ca4f5dbb2a Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Fri, 22 Jul 2022 11:38:20 -0700
|
||||
Subject: [PATCH] libgo: use POSIX shell arithmetic expansion
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 75a430f66760802bf1ac5afcd716613e3cf8c77d 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 07:15:25 +0200
|
||||
Subject: [PATCH] libgo: make match.sh POSIX-shell compatible
|
||||
|
||||
Avoid bash-specific ((expression)) syntax. As the bash syntax
|
||||
converts a non-zero value to a zero status (and a zero value to a 1
|
||||
status), and POSIX arithmetic expansion does not, we have to negate
|
||||
the result.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: I4c64fa15de3994a1a5c7c5ec0de6a82ddd858917
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/419154
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
The `(( expression ))` syntax is a Bash extension. However, the
|
||||
arithmetic expressions used by the gobuild() function can also
|
||||
be expressed using Arithmetic POSIX Expansion with `$(( expression ))`.
|
||||
Contrary to the Bash expression, the Arithmetic Expansion doesn't set
|
||||
the return value if the expression is non-zero but instead just prints
|
||||
the expression result. Hence, the expression also needs to be negated.
|
||||
---
|
||||
libgo/match.sh | 2 +-
|
||||
libgo/testsuite/gotest | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
libgo/match.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/match.sh b/libgo/match.sh
|
||||
index 7ed587ff..e5ed98de 100755
|
||||
index 7ed587ff794..b355d47429a 100755
|
||||
--- a/libgo/match.sh
|
||||
+++ b/libgo/match.sh
|
||||
@@ -111,7 +111,7 @@ gobuild() {
|
||||
@@ -31,20 +22,7 @@ index 7ed587ff..e5ed98de 100755
|
||||
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
|
||||
fi
|
||||
- (($line))
|
||||
+ return $((!($line)))
|
||||
+ return $((! ( line )))
|
||||
}
|
||||
|
||||
matched=
|
||||
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
|
||||
index 04e4267f..0a0a7e14 100755
|
||||
--- a/libgo/testsuite/gotest
|
||||
+++ b/libgo/testsuite/gotest
|
||||
@@ -302,7 +302,7 @@ gobuild() {
|
||||
if test "$goarch" != "386"; then
|
||||
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
|
||||
fi
|
||||
- (($line))
|
||||
+ return $((!($line)))
|
||||
}
|
||||
|
||||
case "x$gofiles" in
|
||||
+35
-31
@@ -24,15 +24,14 @@ CBUILDROOT="/"
|
||||
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
|
||||
pkgname=gcc-armhf
|
||||
_pkgbase=12.2.1 # must match gcc/BASE-VER
|
||||
_pkgsnap=20220924
|
||||
pkgver=${_pkgbase}_git${_pkgsnap}
|
||||
_pkgbase=12.1.1
|
||||
pkgver=12.1.1_git20220630
|
||||
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
|
||||
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
|
||||
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
|
||||
|
||||
pkgname=gcc-armhf
|
||||
pkgrel=2
|
||||
pkgrel=5
|
||||
pkgdesc="Stage2 cross-compiler for armhf"
|
||||
url="https://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -41,7 +40,7 @@ _gccrel=$pkgver-r$pkgrel
|
||||
depends="binutils-armhf mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
|
||||
subpackages="g++-armhf:gpp libstdc++-dev-armhf:libcxx_dev"
|
||||
subpackages="g++-armhf:gpp"
|
||||
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target"
|
||||
replaces="libstdc++ binutils"
|
||||
|
||||
@@ -54,7 +53,7 @@ replaces="libstdc++ binutils"
|
||||
: "${LANG_JIT:=true}"
|
||||
|
||||
_libgomp=true
|
||||
_libgcc=false
|
||||
_libgcc=true
|
||||
_libatomic=true
|
||||
_libitm=true
|
||||
|
||||
@@ -205,14 +204,11 @@ makedepends="$makedepends_build $makedepends_host"
|
||||
# when using upstream releases, use this URI template
|
||||
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
|
||||
#
|
||||
# right now, we are using a git snapshot. snapshots are taken from gcc.gnu.org/pub/gcc/snapshots.
|
||||
# However, since they are periodically deleted from the GCC mirrors the utilized snapshots are
|
||||
# mirrored on dev.alpinelinux.org. Please ensure that the snapshot Git commit (as stated in the
|
||||
# README) matches the base commit on the version-specific branch in the Git repository below.
|
||||
# right now, we are using a git snapshot.
|
||||
#
|
||||
# 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://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
|
||||
0001-posix_memalign.patch
|
||||
0002-gcc-poison-system-directories.patch
|
||||
0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -242,17 +238,23 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-${_pkgsnap}/gcc-
|
||||
0027-always-build-libgcc_eh.a.patch
|
||||
0028-ada-libgnarl-compatibility-for-musl.patch
|
||||
0029-ada-musl-support-fixes.patch
|
||||
0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
|
||||
0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
|
||||
0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
|
||||
0033-gcc-go-link-to-libucontext.patch
|
||||
0034-Use-generic-errstr.go-implementation-on-musl.patch
|
||||
0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
|
||||
0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
0045-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
|
||||
0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
|
||||
0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
|
||||
0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
@@ -261,7 +263,7 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-${_pkgsnap}/gcc-
|
||||
"
|
||||
|
||||
# we build out-of-tree
|
||||
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-${_pkgsnap}
|
||||
_gccdir="$srcdir"/gcc-$pkgver
|
||||
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
|
||||
@@ -553,16 +555,16 @@ libcxx_dev() {
|
||||
depends=
|
||||
replaces="g++"
|
||||
|
||||
amove usr/${_target:+$CTARGET/}lib/libstdc++.a \
|
||||
usr/${_target:+$CTARGET/}lib/libstdc++.so \
|
||||
usr/${_target:+$CTARGET/}lib/libstdc++fs.a \
|
||||
usr/${_target:+$CTARGET/}lib/libsupc++.a \
|
||||
usr/${_target:+$CTARGET/}include/c++
|
||||
amove usr/lib/libstdc++.a \
|
||||
usr/lib/libstdc++.so \
|
||||
usr/lib/libstdc++fs.a \
|
||||
usr/lib/libsupc++.a \
|
||||
usr/include/c++
|
||||
}
|
||||
|
||||
gpp() {
|
||||
pkgdesc="GNU C++ standard library and compiler"
|
||||
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
|
||||
depends="libstdc++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev"
|
||||
mkdir -p "$subpkgdir/$_gcclibexec" \
|
||||
"$subpkgdir"/usr/bin \
|
||||
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
|
||||
@@ -670,10 +672,6 @@ go() {
|
||||
pkgdesc="Go support for GCC"
|
||||
depends="gcc=$_gccrel libgo=$_gccrel !go"
|
||||
|
||||
# See https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
|
||||
provides="go-bootstrap"
|
||||
provider_priority=1 # lowest, see community/go
|
||||
|
||||
mkdir -p "$subpkgdir"/$_gcclibexec \
|
||||
"$subpkgdir"/usr/lib \
|
||||
"$subpkgdir"/usr/bin
|
||||
@@ -765,7 +763,7 @@ gnat() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ba4d9e73d108088da26fbefe18d9b245b76771ffe752c2b4b31bdf38a2d0b638fbc115c377526c27311d4d7ffd4e0d236a5af5016bd364ccaa11a4989d1401e8 gcc-12-20220924.tar.xz
|
||||
43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz
|
||||
41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch
|
||||
531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch
|
||||
c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -795,20 +793,26 @@ b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc
|
||||
674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch
|
||||
f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch
|
||||
5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch
|
||||
3c04b26554a78096296ca9542c77a91219bd26044dd2cb2006db4c1944889a97c215900b3828ba7e8c675162406db543605a815bdfbd915bf810663b1b253bdd 0033-gcc-go-link-to-libucontext.patch
|
||||
74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
|
||||
9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
|
||||
4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
|
||||
0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch
|
||||
699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch
|
||||
d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
8bc6823f0b3c66f7b73d7ddb64ffa6930463285c2e9a14a2bc1882bcc4271144eaa1107d713294699caf9481648163cbf43921a2b8e4ac0d55c78a804bae8a3d 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
e9699f4721778869eb3a8fef2c679208ef5b98584892f30b0e1cb5dc1669f8158198d7792659b1b56c381baf62247d21990dcced9178547affd5d6bfb2d12548 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
d6dc1bfb881a313d167aaa5658790b0f55eea4336c408cfc6613dd5783440dafd0d37c43031a5f3e69be40f632e38371cd4fb6e5f0494ac4ea4d7d5025d2ae02 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
684c6a6d52512b973429b6e709966439ac1e174f9e79a33d4a638b452245b457b34752b4b4034ba983f6a712f86522e7adf715bab00a6603f64a12139c5b1e39 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
|
||||
a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
c33ca2553642c2dbd1c65cd97046548f08775785a3db06d761e3bbe61398c37bc382fe132c0c3fa2101dfd4eea2a6d48bf4fae899a0ddb811c81abd7be35c122 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
|
||||
03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
|
||||
be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
|
||||
c82d7c8d340a76df3d796565a79b0ccc04ddffef39927620e1f3719bf2dc1db101ba13aef24b46c5bc95b7bf1e31c8bda4ab0936ba4c9c5e5047ba08826c982c 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
22fb6edf1ed0387e2b93839ffe6e82a7fee420950af90e91199c3488d966702fdeb1a3396d22be0c73a4051525da9349c93d070a0d83b724c83f2b268da6483f 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
|
||||
29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
|
||||
"
|
||||
@@ -0,0 +1,26 @@
|
||||
From 7feb681596c4cfa34c769505058aa5bdf31c5131 Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Sun, 30 Aug 2020 17:59:45 +0200
|
||||
Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Taken from Adélie Linux.
|
||||
---
|
||||
libgo/mksigtab.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
|
||||
index bea8739957e..3876002efab 100644
|
||||
--- a/libgo/mksigtab.sh
|
||||
+++ b/libgo/mksigtab.sh
|
||||
@@ -86,7 +86,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
|
||||
checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
|
||||
checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
|
||||
checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
|
||||
-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
|
||||
+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
|
||||
checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}'
|
||||
checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}'
|
||||
checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}'
|
||||
@@ -0,0 +1,24 @@
|
||||
From b6885cf73989161b1b6893b5ae0dafed006d5f13 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 25 Nov 2021 01:47:03 +0000
|
||||
Subject: [PATCH] There are more than one st_{a,m,c}tim fields in struct stat
|
||||
on time64 machines.
|
||||
|
||||
Run the Go-isation on all of them.
|
||||
---
|
||||
libgo/mksysinfo.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 0c52ea5d71a..6fef104cc1c 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -510,7 +510,7 @@ fi
|
||||
|
||||
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
|
||||
# stat_t's time fields on NetBSD.
|
||||
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
|
||||
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
|
||||
if test "${GOOS}" = "netbsd"; then
|
||||
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
|
||||
fi
|
||||
@@ -0,0 +1,24 @@
|
||||
From c7a22e42ae403154a0c0158495b04b0205102041 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 30 Aug 2020 19:27:51 +0200
|
||||
Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
|
||||
|
||||
---
|
||||
libgo/runtime/proc.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
|
||||
index 3a30748d329..a987678fa84 100644
|
||||
--- a/libgo/runtime/proc.c
|
||||
+++ b/libgo/runtime/proc.c
|
||||
@@ -66,6 +66,10 @@ static void gscanstack(G*);
|
||||
|
||||
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
|
||||
|
||||
+/* libucontext does not seem to support tlsbase, undef the macro
|
||||
+ * here to make sure we define initcontext and fixcontext as dummies. */
|
||||
+#undef SETCONTEXT_CLOBBERS_TLS
|
||||
+
|
||||
#ifndef SETCONTEXT_CLOBBERS_TLS
|
||||
|
||||
static inline void
|
||||
@@ -1,22 +1,17 @@
|
||||
From 0631e2b9453b33c42e12a14c11e8257d470016c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 30 Aug 2020 19:17:42 +0200
|
||||
Subject: [PATCH] gcc-go: support libucontext
|
||||
From ef9df74e0c1059e51bb76b1f6d9d4746949d4d34 Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Mon, 31 Aug 2020 08:59:40 +0200
|
||||
Subject: [PATCH] gcc-go: link to libucontext
|
||||
|
||||
This patch allows using gcc-go with libucontext. For this purpose,
|
||||
it unconditionally links gcc-go against -lucontext. Furthermore,
|
||||
it undefines SETCONTEXT_CLOBBERS_TLS in proc.c to prevent usage
|
||||
of makecontext/swapcontext feature that are not support by libucontext.
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
libgo/runtime/proc.c | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 593495e1650..c3e5d489bc0 100644
|
||||
index b96f60e33e2..b564ddbf792 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -52801,7 +52801,7 @@ configure-target-libgo:
|
||||
@@ -52802,7 +52802,7 @@ configure-target-libgo:
|
||||
esac; \
|
||||
module_srcdir=libgo; \
|
||||
rm -f no-such-file || : ; \
|
||||
@@ -25,18 +20,3 @@ index 593495e1650..c3e5d489bc0 100644
|
||||
$$s/$$module_srcdir/configure \
|
||||
--srcdir=$${topdir}/$$module_srcdir \
|
||||
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
|
||||
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
|
||||
index 3a30748d329..a987678fa84 100644
|
||||
--- a/libgo/runtime/proc.c
|
||||
+++ b/libgo/runtime/proc.c
|
||||
@@ -66,6 +66,10 @@ static void gscanstack(G*);
|
||||
|
||||
__thread G *g __asm__(GOSYM_PREFIX "runtime.g");
|
||||
|
||||
+/* libucontext does not seem to support tlsbase, undef the macro
|
||||
+ * here to make sure we define initcontext and fixcontext as dummies. */
|
||||
+#undef SETCONTEXT_CLOBBERS_TLS
|
||||
+
|
||||
#ifndef SETCONTEXT_CLOBBERS_TLS
|
||||
|
||||
static inline void
|
||||
@@ -1,199 +1,81 @@
|
||||
From 3b9243b891cc06373639a23ed5717b0d1c2d8ea6 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Tue, 14 Jun 2022 06:13:43 -0700
|
||||
Subject: [PATCH] libgo: permit loff_t and off_t to be macros
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 4655244d80aa67904a88d620361f2d37ea4c8576 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 28 Nov 2021 00:54:37 +0100
|
||||
Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
|
||||
|
||||
They are macros in musl libc, rather than typedefs, and -fgo-dump-spec
|
||||
doesn't handle that case.
|
||||
Without this patch, both off64_t and loff_t are not recognized by
|
||||
-fdump-go-spec which causes a variety Go-related compilation errors on
|
||||
musl libc since the gcc-go frontend expects both off64_t and loff_t to
|
||||
be present.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: Ic9a608fd964a6f78e754aa8e3100aff06ab3dade
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/412075
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
|
||||
libgo: #include <sys/types.h> when checking for loff_t
|
||||
|
||||
Fixes https://gcc.gnu.org/PR106033
|
||||
Fixes golang/go#53469
|
||||
|
||||
Change-Id: I060021b7bb9334949b567442448abb6822fd6d35
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413214
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Also make sure that autoconf recognizes support for loff_t on musl, by
|
||||
compiling the relevant feature test code with -D_GNU_SOURCE and making
|
||||
it include fcntl.h which defines loff_t on musl.
|
||||
---
|
||||
libgo/config.h.in | 3 +++
|
||||
libgo/configure | 12 ++++++++++--
|
||||
libgo/configure.ac | 11 +++++++++--
|
||||
libgo/go/syscall/libcall_linux.go | 17 +++++++++--------
|
||||
libgo/mksysinfo.sh | 6 +-----
|
||||
libgo/sysinfo.c | 15 ++++++++++++++-
|
||||
6 files changed, 46 insertions(+), 18 deletions(-)
|
||||
libgo/configure | 4 +++-
|
||||
libgo/configure.ac | 4 +++-
|
||||
libgo/sysinfo.c | 21 +++++++++++++++++++++
|
||||
3 files changed, 27 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgo/config.h.in b/libgo/config.h.in
|
||||
index 25b8ab8f9ee..2c3c7469675 100644
|
||||
--- a/libgo/config.h.in
|
||||
+++ b/libgo/config.h.in
|
||||
@@ -70,6 +70,9 @@
|
||||
/* Define to 1 if you have the `fchownat' function. */
|
||||
#undef HAVE_FCHOWNAT
|
||||
|
||||
+/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
+#undef HAVE_FCNTL_H
|
||||
+
|
||||
/* Define to 1 if you have the `futimesat' function. */
|
||||
#undef HAVE_FUTIMESAT
|
||||
|
||||
diff --git a/libgo/configure b/libgo/configure
|
||||
index ffe17c9be55..61a49947eb9 100755
|
||||
index ffe17c9be55..c2dbecef98c 100755
|
||||
--- a/libgo/configure
|
||||
+++ b/libgo/configure
|
||||
@@ -15249,7 +15249,7 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
|
||||
fi
|
||||
|
||||
|
||||
-for ac_header in port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
|
||||
+for ac_header in fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||
@@ -15546,7 +15546,14 @@ _ACEOF
|
||||
@@ -15546,7 +15546,9 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
-ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
|
||||
+
|
||||
+CFLAGS_hold="$CFLAGS"
|
||||
+CFLAGS="$OSCFLAGS $CFLAGS"
|
||||
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "
|
||||
+#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
+
|
||||
+"
|
||||
+CFLAGS_hold=$CFLAGS
|
||||
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||
+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
|
||||
if test "x$ac_cv_type_loff_t" = xyes; then :
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@@ -15556,6 +15563,7 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
+CFLAGS="$CFLAGS_hold"
|
||||
|
||||
LIBS_hold="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
diff --git a/libgo/configure.ac b/libgo/configure.ac
|
||||
index 7e2b98ba67c..274fcfc35c7 100644
|
||||
index 7e2b98ba67c..667feae3c03 100644
|
||||
--- a/libgo/configure.ac
|
||||
+++ b/libgo/configure.ac
|
||||
@@ -579,7 +579,7 @@ AC_C_BIGENDIAN
|
||||
|
||||
GCC_CHECK_UNWIND_GETIPINFO
|
||||
|
||||
-AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
|
||||
+AC_CHECK_HEADERS(fcntl.h port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/sysctl.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/bpf.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/ptrace.h linux/reboot.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h lwp.h)
|
||||
|
||||
AC_CHECK_HEADERS([netinet/icmp6.h], [], [],
|
||||
[#include <netinet/in.h>
|
||||
@@ -601,7 +601,14 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
@@ -601,7 +601,9 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
|
||||
AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
|
||||
AC_TYPE_OFF_T
|
||||
-AC_CHECK_TYPES([loff_t])
|
||||
+
|
||||
+CFLAGS_hold="$CFLAGS"
|
||||
+CFLAGS="$OSCFLAGS $CFLAGS"
|
||||
+AC_CHECK_TYPES([loff_t], [], [], [[
|
||||
+#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
+]])
|
||||
+CFLAGS="$CFLAGS_hold"
|
||||
+CFLAGS_hold=$CFLAGS
|
||||
+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
|
||||
+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
|
||||
|
||||
LIBS_hold="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
|
||||
index 96974bd3269..65eb1a745f7 100644
|
||||
--- a/libgo/go/syscall/libcall_linux.go
|
||||
+++ b/libgo/go/syscall/libcall_linux.go
|
||||
@@ -209,19 +209,20 @@ func Gettid() (tid int) {
|
||||
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
|
||||
//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
|
||||
|
||||
-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
|
||||
-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
|
||||
+//sys splice(rfd int, roff *_libgo_loff_t_type, wfd int, woff *_libgo_loff_t_type, len int, flags int) (n int64, err error)
|
||||
+//splice(rfd _C_int, roff *_libgo_loff_t_type, wfd _C_int, woff *_libgo_loff_t_type, len Size_t, flags _C_uint) Ssize_t
|
||||
+
|
||||
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
|
||||
- var lroff _loff_t
|
||||
- var plroff *_loff_t
|
||||
+ var lroff _libgo_loff_t_type
|
||||
+ var plroff *_libgo_loff_t_type
|
||||
if roff != nil {
|
||||
- lroff = _loff_t(*roff)
|
||||
+ lroff = _libgo_loff_t_type(*roff)
|
||||
plroff = &lroff
|
||||
}
|
||||
- var lwoff _loff_t
|
||||
- var plwoff *_loff_t
|
||||
+ var lwoff _libgo_loff_t_type
|
||||
+ var plwoff *_libgo_loff_t_type
|
||||
if woff != nil {
|
||||
- lwoff = _loff_t(*woff)
|
||||
+ lwoff = _libgo_loff_t_type(*woff)
|
||||
plwoff = &lwoff
|
||||
}
|
||||
n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 0c52ea5d71a..5aa309155c3 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -403,11 +403,7 @@ fi
|
||||
# Some basic types.
|
||||
echo 'type Size_t _size_t' >> ${OUT}
|
||||
echo "type Ssize_t _ssize_t" >> ${OUT}
|
||||
-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then
|
||||
- echo "type Offset_t _off64_t" >> ${OUT}
|
||||
-else
|
||||
- echo "type Offset_t _off_t" >> ${OUT}
|
||||
-fi
|
||||
+echo "type Offset_t _libgo_off_t_type" >> ${OUT}
|
||||
echo "type Mode_t _mode_t" >> ${OUT}
|
||||
echo "type Pid_t _pid_t" >> ${OUT}
|
||||
echo "type Uid_t _uid_t" >> ${OUT}
|
||||
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
|
||||
index 336a5983750..fc0210992fa 100644
|
||||
index 8ce061e2f5f..b85add15a7b 100644
|
||||
--- a/libgo/sysinfo.c
|
||||
+++ b/libgo/sysinfo.c
|
||||
@@ -354,6 +354,18 @@ enum {
|
||||
};
|
||||
@@ -343,6 +343,27 @@ enum {
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if defined(HAVE_LOFF_T)
|
||||
+// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
|
||||
+// see a typedef.
|
||||
+typedef loff_t libgo_loff_t_type;
|
||||
+// musl libc has both off64_t and loff_t. However, both of these types
|
||||
+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
|
||||
+// -fdump-go-spec option, which is responsible for generating type
|
||||
+// definitions for Go based on this file, only recognizes types defined
|
||||
+// through typedefs.
|
||||
+//
|
||||
+// For this reason, we check here if either off64_t or loff_t are
|
||||
+// defined as CPP macros and if so, we redefine them using a C typedef.
|
||||
+#if defined(HAVE_OFF64_T) && defined(off64_t)
|
||||
+typedef off64_t __musl_off64_t;
|
||||
+#undef off64_t
|
||||
+typedef __musl_off64_t off64_t;
|
||||
+#endif
|
||||
+
|
||||
+#if defined(HAVE_OFF64_T)
|
||||
+typedef off64_t libgo_off_t_type;
|
||||
+#else
|
||||
+typedef off_t libgo_off_t_type;
|
||||
+// See comment regarding musl libc above.
|
||||
+#if defined(HAVE_LOFF_T) && defined(loff_t)
|
||||
+typedef loff_t __musl_loff_t;
|
||||
+#undef loff_t
|
||||
+typedef __musl_loff_t loff_t;
|
||||
+#endif
|
||||
+
|
||||
// The following section introduces explicit references to types and
|
||||
// constants of interest to support bootstrapping libgo using a
|
||||
// compiler that doesn't support -fdump-go-spec (e.g., clang), via
|
||||
@@ -534,7 +546,8 @@ SREF(timex);
|
||||
// From sys/types.h
|
||||
TREF(pid_t);
|
||||
TREF(off_t);
|
||||
-TREF(loff_t);
|
||||
+TREF(libgo_loff_t_type);
|
||||
+TREF(libgo_off_t_type);
|
||||
TREF(size_t);
|
||||
TREF(ssize_t);
|
||||
TREF(mode_t);
|
||||
// SIOCGIFMTU can't be added in the above enum as it might
|
||||
// be signed in some OSes.
|
||||
#ifdef SIOCGIFMTU
|
||||
@@ -1,22 +1,43 @@
|
||||
From 4b6240d5301ce04b8bbc3e2152915cbc7da80584 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Wed, 28 Sep 2022 17:30:14 +0200
|
||||
Subject: [PATCH] libgo: use _off_t for mmap offset argument
|
||||
From 76c13560bba3534bff335e5bb571a8b95d50d4ba Mon Sep 17 00:00:00 2001
|
||||
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
|
||||
Date: Sun, 30 Aug 2020 18:33:49 +0200
|
||||
Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
On glibc-based systems, off_t is a 32-bit type on 32-bit systems and a
|
||||
64-bit type on 64-bit systems by default. However, on systems using musl
|
||||
libc off_t is unconditionally a 64-bit type. As such, it is insufficient
|
||||
to use a uintptr type for the mmap offset parameter.
|
||||
Without this patch, Go run-time memory allocation fails on 32-bit architectures:
|
||||
|
||||
Presently, the (incorrect) mmap declaration causes a libgo run-time
|
||||
failure on 32-bit musl systems (fatal error: runtime: cannot allocate
|
||||
memory). This commit fixes this run-time error.
|
||||
fatal error: runtime: cannot allocate memory
|
||||
runtime stack:
|
||||
runtime.dopanic__m
|
||||
:0
|
||||
runtime.throw
|
||||
:0
|
||||
:0
|
||||
:0
|
||||
runtime.systemstack
|
||||
:0
|
||||
runtime.addrRanges.init
|
||||
:0
|
||||
runtime.pageAlloc.init
|
||||
:0
|
||||
runtime.mheap.init
|
||||
:0
|
||||
runtime.schedinit
|
||||
:0
|
||||
:0
|
||||
:0
|
||||
|
||||
Taken from Adélie Linux [1].
|
||||
|
||||
[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
|
||||
---
|
||||
libgo/go/runtime/mem_gccgo.go | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
|
||||
index fa3389d8..07bf325a 100644
|
||||
index fa3389d857e..57bed97c710 100644
|
||||
--- a/libgo/go/runtime/mem_gccgo.go
|
||||
+++ b/libgo/go/runtime/mem_gccgo.go
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
@@ -24,16 +45,16 @@ index fa3389d8..07bf325a 100644
|
||||
|
||||
//extern mmap
|
||||
-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer
|
||||
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off _off_t) unsafe.Pointer
|
||||
+func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer
|
||||
|
||||
//extern munmap
|
||||
func munmap(addr unsafe.Pointer, length uintptr) int32
|
||||
@@ -38,7 +38,7 @@ func init() {
|
||||
@@ -37,7 +37,7 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
|
||||
- p := sysMmap(addr, n, prot, flags, fd, off)
|
||||
+ p := sysMmap(addr, n, prot, flags, fd, _off_t(off))
|
||||
-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) {
|
||||
+func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) {
|
||||
p := sysMmap(addr, n, prot, flags, fd, off)
|
||||
if uintptr(p) == _MAP_FAILED {
|
||||
return nil, errno()
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
From cf41d579088e1c0b5c33c93657ad041e797b5905 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
|
||||
Date: Sun, 2 Jan 2022 01:07:03 +0100
|
||||
Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Both glibc and musl libc declare pt_regs as an incomplete type. This
|
||||
type has to be completed by inclusion of another header. On Linux, the
|
||||
asm/ptrace.h header file provides this type definition. Without
|
||||
including this header file, it is not possible to access the regs member
|
||||
of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
|
||||
other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
|
||||
asm/ptrace.h is not included by other headers and thus the
|
||||
aforementioned files do not compile without an explicit include of
|
||||
asm/ptrace.h:
|
||||
|
||||
libgo/runtime/go-signal.c: In function 'getSiginfo':
|
||||
libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
|
||||
227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
|
||||
|
|
||||
|
||||
Instead of including the asm/ptrace.h header conditionally on PowerPC
|
||||
only it would alternatively also be possible to include it
|
||||
unconditionally.
|
||||
|
||||
See also:
|
||||
|
||||
* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
|
||||
* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
|
||||
* https://github.com/kaniini/libucontext/issues/36
|
||||
|
||||
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
|
||||
---
|
||||
libgo/runtime/go-signal.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
|
||||
index 528d9b6d9fe..c67503f0a79 100644
|
||||
--- a/libgo/runtime/go-signal.c
|
||||
+++ b/libgo/runtime/go-signal.c
|
||||
@@ -10,6 +10,12 @@
|
||||
#include <sys/time.h>
|
||||
#include <ucontext.h>
|
||||
|
||||
+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
|
||||
+// type. This type must be completed by including asm/ptrace.h.
|
||||
+#ifdef __PPC__
|
||||
+#include <asm/ptrace.h>
|
||||
+#endif
|
||||
+
|
||||
#include "runtime.h"
|
||||
|
||||
#ifndef SA_RESTART
|
||||
@@ -1,71 +1,30 @@
|
||||
From c86b726c048eddc1be320c0bf64a897658bee13d Mon Sep 17 00:00:00 2001
|
||||
From: Uros Bizjak <ubizjak@gmail.com>
|
||||
Date: Wed, 18 May 2022 20:03:26 +0200
|
||||
Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
|
||||
TARGET_CAN_SPLIT_STACK
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From fbc8240ac15225ede8416a27c9978559b85d6877 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Mon, 21 Feb 2022 10:04:47 +0000
|
||||
Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
|
||||
|
||||
Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
|
||||
is only supported on glibc targets. However, this original commit
|
||||
required some fixups. As part of the fixup, the changes to the
|
||||
gnu-user-common.h and gnu.h were partially reverted in commit
|
||||
60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
|
||||
to be defined for non-glibc targets even though -fsplit-stack is
|
||||
actually not supported and attempting to use it causes a runtime error.
|
||||
|
||||
This causes gcc internal code, such as ./gcc/go/gospec.c to not
|
||||
correctly detect that -fsplit-stack is not supported and thus causes
|
||||
gccgo to fail compilation on non-glibc targets.
|
||||
|
||||
This commit ensures that TARGET_CAN_SPLIT_STACK is only set if the
|
||||
default libc is glibc. It is presently unclear to me if there is a
|
||||
better way to detect glibc at pre-processor time.
|
||||
|
||||
The proposed changes have been tested on x86 and x86_64 Alpine Linux
|
||||
(which uses musl libc) and fix compilation of gccgo for this target.
|
||||
|
||||
Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
* config/i386/gnu-user-common.h (defined): Only define
|
||||
TARGET_CAN_SPLIT_STACK for glibc targets.
|
||||
* config/i386/gnu.h (defined): Ditto.
|
||||
for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
|
||||
so hackfix it for now
|
||||
---
|
||||
gcc/config/i386/gnu-user-common.h | 5 +++--
|
||||
gcc/config/i386/gnu.h | 5 +++--
|
||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
||||
gcc/go/gospec.cc | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
|
||||
index 23b54c5be52..cab9be2bfb7 100644
|
||||
--- a/gcc/config/i386/gnu-user-common.h
|
||||
+++ b/gcc/config/i386/gnu-user-common.h
|
||||
@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
diff --git a/gcc/go/gospec.cc b/gcc/go/gospec.cc
|
||||
index df92b62d8e6..cf168beb4cf 100644
|
||||
--- a/gcc/go/gospec.cc
|
||||
+++ b/gcc/go/gospec.cc
|
||||
@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
||||
/* Copy the 0th argument, i.e., the name of the program itself. */
|
||||
new_decoded_options[j++] = decoded_options[i++];
|
||||
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
- assembler has full support for the CFI directives. */
|
||||
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
+ assembler has full support for the CFI directives. Also
|
||||
+ we only support -fsplit-stack on glibc targets. */
|
||||
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
-#ifdef TARGET_CAN_SPLIT_STACK
|
||||
+ /* Hackfix: we never support split stack on Alpine GCC */
|
||||
+#if 0
|
||||
supports_split_stack = 1;
|
||||
#endif
|
||||
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
|
||||
index 401e60c9a02..fb8d69a97d8 100644
|
||||
--- a/gcc/config/i386/gnu.h
|
||||
+++ b/gcc/config/i386/gnu.h
|
||||
@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define TARGET_THREAD_SSP_OFFSET 0x14
|
||||
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
- assembler has full support for the CFI directives. */
|
||||
-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
+ assembler has full support for the CFI directives. Also
|
||||
+ we only support -fsplit-stack on glibc targets. */
|
||||
+#if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
-#ifdef TARGET_CAN_SPLIT_STACK_64BIT
|
||||
+#if 0
|
||||
if (is_m64)
|
||||
supports_split_stack = 1;
|
||||
#endif
|
||||
/* We steal the last transactional memory word. */
|
||||
@@ -1,41 +1,31 @@
|
||||
From 548720bca6bff21ebc9aba22249d9ce45bbd90c7 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Wed, 29 Jun 2022 15:32:04 -0700
|
||||
Subject: [PATCH] libgo: handle stat st_atim32 field and SYS_SECCOMP
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 38270192ea355d8035d9f1b5fe50e36ca3fa3708 Mon Sep 17 00:00:00 2001
|
||||
From: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Date: Thu, 30 Jun 2022 17:04:23 +0000
|
||||
Subject: [PATCH] gcc-go: fix build error with SYS_SECCOMP
|
||||
|
||||
Patches for musl support, from Sören Tempel.
|
||||
fix the build error:
|
||||
sysinfo.go:6606:7: error: redefinition of 'SYS_SECCOMP'
|
||||
6606 | const SYS_SECCOMP = _SYS_SECCOMP
|
||||
| ^
|
||||
sysinfo.go:6600:7: note: previous definition of 'SYS_SECCOMP' was here
|
||||
6600 | const SYS_SECCOMP = _SYS_seccomp
|
||||
| ^
|
||||
|
||||
Fixes https://gcc.gnu.org/PR105225
|
||||
|
||||
Change-Id: If396877d4a4c7d27962226d7a6e3bb91b1344413
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415294
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105225
|
||||
---
|
||||
libgo/mksysinfo.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
libgo/mksysinfo.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
|
||||
index 5aa30915..ea1fa17d 100755
|
||||
index 6fef104cc1c..06289a43bdf 100755
|
||||
--- a/libgo/mksysinfo.sh
|
||||
+++ b/libgo/mksysinfo.sh
|
||||
@@ -127,6 +127,7 @@ fi
|
||||
@@ -126,7 +126,7 @@ if ! grep '^const SIGCLD ' ${OUT} >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
# The syscall numbers. We force the names to upper case.
|
||||
grep '^const _SYS_' gen-sysinfo.go | \
|
||||
+ grep -v '^const _SYS_SECCOMP = ' | \
|
||||
-grep '^const _SYS_' gen-sysinfo.go | \
|
||||
+grep '^const _SYS_[a-z]' gen-sysinfo.go | \
|
||||
sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
|
||||
while read sys; do
|
||||
sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
|
||||
@@ -506,7 +507,7 @@ fi
|
||||
|
||||
# For historical reasons Go uses the suffix "timespec" instead of "tim" for
|
||||
# stat_t's time fields on NetBSD.
|
||||
-st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
|
||||
+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
|
||||
if test "${GOOS}" = "netbsd"; then
|
||||
st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
|
||||
fi
|
||||
@@ -0,0 +1,107 @@
|
||||
From 9cef407678b40c20ecc39850c7e43346ad92a60b Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <siarheit@google.com>
|
||||
Date: Mon, 27 Jun 2022 03:31:45 +0100
|
||||
Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
|
||||
|
||||
On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
|
||||
it indirectly and exposes use of poisoned calloc() when module code
|
||||
is built:
|
||||
|
||||
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
|
||||
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
|
||||
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
|
||||
....
|
||||
from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
|
||||
from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
|
||||
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
|
||||
from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
|
||||
from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
|
||||
84 | void *calloc(size_t, size_t);
|
||||
| ^
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
|
||||
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
|
||||
| ^
|
||||
|
||||
gcc/cp/
|
||||
|
||||
PR c++/106102
|
||||
* mapper-client.cc: Include <memory> via "system.h".
|
||||
* mapper-resolver.cc: Ditto.
|
||||
* module.cc: Ditto.
|
||||
|
||||
libcc1/
|
||||
|
||||
PR c++/106102
|
||||
* libcc1plugin.cc: Include <memory> via "system.h".
|
||||
* libcp1plugin.cc: Ditto.
|
||||
|
||||
(cherry picked from commit 3b21c21f3f5726823e19728fdd1571a14aae0fb3)
|
||||
---
|
||||
gcc/cp/mapper-client.cc | 1 +
|
||||
gcc/cp/mapper-resolver.cc | 1 +
|
||||
gcc/cp/module.cc | 1 +
|
||||
libcc1/libcc1plugin.cc | 1 +
|
||||
libcc1/libcp1plugin.cc | 1 +
|
||||
5 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
|
||||
index 8603a886a09..fe9544b5ba4 100644
|
||||
--- a/gcc/cp/mapper-client.cc
|
||||
+++ b/gcc/cp/mapper-client.cc
|
||||
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define INCLUDE_STRING
|
||||
#define INCLUDE_VECTOR
|
||||
#define INCLUDE_MAP
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "system.h"
|
||||
|
||||
#include "line-map.h"
|
||||
diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
|
||||
index e3d29fb5ada..e70d1b4ae2c 100644
|
||||
--- a/gcc/cp/mapper-resolver.cc
|
||||
+++ b/gcc/cp/mapper-resolver.cc
|
||||
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#define INCLUDE_VECTOR
|
||||
#define INCLUDE_ALGORITHM
|
||||
#define INCLUDE_MAP
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "system.h"
|
||||
|
||||
// We don't want or need to be aware of networking
|
||||
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
|
||||
index cebf9c35c1d..5c5d02bb523 100644
|
||||
--- a/gcc/cp/module.cc
|
||||
+++ b/gcc/cp/module.cc
|
||||
@@ -202,6 +202,7 @@ Classes used:
|
||||
|
||||
#define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available. */
|
||||
#include "config.h"
|
||||
+#define INCLUDE_MEMORY
|
||||
#define INCLUDE_STRING
|
||||
#define INCLUDE_VECTOR
|
||||
#include "system.h"
|
||||
diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
|
||||
index 12ab5a57c8d..bdd0bdabe77 100644
|
||||
--- a/libcc1/libcc1plugin.cc
|
||||
+++ b/libcc1/libcc1plugin.cc
|
||||
@@ -31,6 +31,7 @@
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "gcc-plugin.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
|
||||
index 83dab7f58b1..e2d5039a0a1 100644
|
||||
--- a/libcc1/libcp1plugin.cc
|
||||
+++ b/libcc1/libcp1plugin.cc
|
||||
@@ -32,6 +32,7 @@
|
||||
#undef PACKAGE_TARNAME
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
+#define INCLUDE_MEMORY
|
||||
#include "gcc-plugin.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
@@ -0,0 +1,117 @@
|
||||
From f982c816d8f52a65231544b838160484b5ed4c71 Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <siarheit@google.com>
|
||||
Date: Mon, 27 Jun 2022 14:44:48 +0100
|
||||
Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
|
||||
|
||||
On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
|
||||
it directly and exposes use of poisoned calloc():
|
||||
|
||||
/build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
|
||||
make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
|
||||
make[3]: *** Waiting for unfinished jobs....
|
||||
In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
|
||||
from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
|
||||
84 | void *calloc(size_t, size_t);
|
||||
| ^
|
||||
/<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
|
||||
124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
|
||||
| ^
|
||||
|
||||
The change moves <pthread.h> inclusion to "system.h" under new
|
||||
INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
|
||||
|
||||
gcc/
|
||||
|
||||
PR c++/106102
|
||||
* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
|
||||
|
||||
gcc/jit/
|
||||
|
||||
PR c++/106102
|
||||
* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
|
||||
poisoning.
|
||||
* jit-recording.cc: Ditto.
|
||||
* libgccjit.cc: Ditto.
|
||||
|
||||
(cherry picked from commit 49d508065bdd36fb1a9b6aad9666b1edb5e06474)
|
||||
---
|
||||
gcc/jit/jit-playback.cc | 3 +--
|
||||
gcc/jit/jit-recording.cc | 2 +-
|
||||
gcc/jit/libgccjit.cc | 2 +-
|
||||
gcc/system.h | 4 ++++
|
||||
4 files changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
|
||||
index 6be6bdf8dea..79714132b91 100644
|
||||
--- a/gcc/jit/jit-playback.cc
|
||||
+++ b/gcc/jit/jit-playback.cc
|
||||
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "target.h"
|
||||
@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "diagnostic.h"
|
||||
#include "stmt.h"
|
||||
|
||||
-#include <pthread.h>
|
||||
-
|
||||
#include "jit-playback.h"
|
||||
#include "jit-result.h"
|
||||
#include "jit-builtins.h"
|
||||
diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
|
||||
index a31720f043e..5556b9c4905 100644
|
||||
--- a/gcc/jit/jit-recording.cc
|
||||
+++ b/gcc/jit/jit-recording.cc
|
||||
@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "tm.h"
|
||||
#include "pretty-print.h"
|
||||
#include "toplev.h"
|
||||
|
||||
-#include <pthread.h>
|
||||
|
||||
#include "jit-builtins.h"
|
||||
#include "jit-recording.h"
|
||||
diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
|
||||
index cc6486c9cad..4c991e5436b 100644
|
||||
--- a/gcc/jit/libgccjit.cc
|
||||
+++ b/gcc/jit/libgccjit.cc
|
||||
@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "config.h"
|
||||
+#define INCLUDE_PTHREAD_H
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "timevar.h"
|
||||
#include "typed-splay-tree.h"
|
||||
#include "cppbuiltin.h"
|
||||
-#include <pthread.h>
|
||||
|
||||
#include "libgccjit.h"
|
||||
#include "jit-recording.h"
|
||||
diff --git a/gcc/system.h b/gcc/system.h
|
||||
index c5562cc49a3..e10c34f70ec 100644
|
||||
--- a/gcc/system.h
|
||||
+++ b/gcc/system.h
|
||||
@@ -750,6 +750,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifdef INCLUDE_PTHREAD_H
|
||||
+#include <pthread.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef INCLUDE_ISL
|
||||
#ifdef HAVE_isl
|
||||
#include <isl/options.h>
|
||||
@@ -1,108 +1,28 @@
|
||||
From 8f1a91aeff400d572857895b7f5e863ec5a4d93e Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Mon, 26 Sep 2022 15:03:53 -0400
|
||||
Subject: [PATCH] runtime: portable access to sigev_notify_thread_id
|
||||
From d54419ddcc14f52517017147201560da5353c436 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 17 Jul 2022 02:52:13 +0200
|
||||
Subject: [PATCH] libgo: adjust name of union in sigevent struct
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Previously, libgo relied on the _sigev_un implementation-specific
|
||||
field in struct sigevent, which is only available on glibc.
|
||||
This patch uses the sigev_notify_thread_id macro instead which is
|
||||
mandated by timer_create(2). In theory, this should work with any libc
|
||||
implementation for Linux. Unfortunately, there is an open glibc bug
|
||||
as glibc does not define this macro. For this reason, a glibc-specific
|
||||
workaround is required. Other libcs (such as musl) define the macro
|
||||
and don't require the workaround.
|
||||
|
||||
See https://sourceware.org/bugzilla/show_bug.cgi?id=27417
|
||||
|
||||
This makes libgo compatible with musl libc.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: I0924a53d5212730ebc395ecf9199f85967be8cc6
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
The union in struct sigevent is named __sev_fields on musl but
|
||||
_sigev_un on glibc. Not sure what this code actually does and
|
||||
how this works if the union layout is different…
|
||||
---
|
||||
libgo/go/runtime/os_linux.go | 12 +++++++++++-
|
||||
libgo/runtime/go-signal.c | 18 ++++++++++++++++++
|
||||
2 files changed, 29 insertions(+), 1 deletion(-)
|
||||
libgo/go/runtime/os_linux.go | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/go/runtime/os_linux.go b/libgo/go/runtime/os_linux.go
|
||||
index 96fb1788..2b2d827c 100644
|
||||
index 96fb178870e..a75a2dd703f 100644
|
||||
--- a/libgo/go/runtime/os_linux.go
|
||||
+++ b/libgo/go/runtime/os_linux.go
|
||||
@@ -22,6 +22,12 @@ type mOS struct {
|
||||
profileTimerValid uint32
|
||||
}
|
||||
|
||||
+// setSigeventTID is written in C to set the sigev_notify_thread_id
|
||||
+// field of a sigevent struct.
|
||||
+//
|
||||
+//go:noescape
|
||||
+func setSigeventTID(*_sigevent, int32)
|
||||
+
|
||||
func getProcID() uint64 {
|
||||
return uint64(gettid())
|
||||
}
|
||||
@@ -52,9 +58,12 @@ const (
|
||||
)
|
||||
|
||||
// Atomically,
|
||||
+//
|
||||
// if(*addr == val) sleep
|
||||
+//
|
||||
// Might be woken up spuriously; that's allowed.
|
||||
// Don't sleep longer than ns; ns < 0 means forever.
|
||||
+//
|
||||
//go:nosplit
|
||||
func futexsleep(addr *uint32, val uint32, ns int64) {
|
||||
// Some Linux kernels have a bug where futex of
|
||||
@@ -73,6 +82,7 @@ func futexsleep(addr *uint32, val uint32, ns int64) {
|
||||
}
|
||||
|
||||
// If any procs are sleeping on addr, wake up at most cnt.
|
||||
+//
|
||||
//go:nosplit
|
||||
func futexwakeup(addr *uint32, cnt uint32) {
|
||||
ret := futex(unsafe.Pointer(addr), _FUTEX_WAKE_PRIVATE, cnt, nil, nil, 0)
|
||||
@@ -365,7 +375,7 @@ func setThreadCPUProfiler(hz int32) {
|
||||
@@ -365,7 +365,7 @@ func setThreadCPUProfiler(hz int32) {
|
||||
var sevp _sigevent
|
||||
sevp.sigev_notify = _SIGEV_THREAD_ID
|
||||
sevp.sigev_signo = _SIGPROF
|
||||
- *((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
|
||||
+ setSigeventTID(&sevp, int32(mp.procid))
|
||||
+ *((*int32)(unsafe.Pointer(&sevp.__sev_fields))) = int32(mp.procid)
|
||||
ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
|
||||
if ret != 0 {
|
||||
// If we cannot create a timer for this M, leave profileTimerValid false
|
||||
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
|
||||
index 528d9b6d..aa1b6305 100644
|
||||
--- a/libgo/runtime/go-signal.c
|
||||
+++ b/libgo/runtime/go-signal.c
|
||||
@@ -183,6 +183,24 @@ setSigactionHandler(struct sigaction* sa, uintptr handler)
|
||||
sa->sa_sigaction = (void*)(handler);
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+// Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=27417
|
||||
+#ifndef sigev_notify_thread_id
|
||||
+ #define sigev_notify_thread_id _sigev_un._tid
|
||||
+#endif
|
||||
+
|
||||
+void setSigeventTID(struct sigevent*, int32_t)
|
||||
+ __asm__ (GOSYM_PREFIX "runtime.setSigeventTID");
|
||||
+
|
||||
+void
|
||||
+setSigeventTID(struct sigevent *sev, int32_t v)
|
||||
+{
|
||||
+ sev->sigev_notify_thread_id = v;
|
||||
+}
|
||||
+
|
||||
+#endif // defined(__linux__)
|
||||
+
|
||||
// C code to fetch values from the siginfo_t and ucontext_t pointers
|
||||
// passed to a signal handler.
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
From d53e8a0e94e34dc609e34dd5e404debda2640cfb Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Sat, 30 Jul 2022 07:29:28 -0700
|
||||
Subject: [PATCH] libgo: use SYS_timer_settime32
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 3825632cf4007ac93d8e44705a6da042c496318b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Mon, 18 Jul 2022 20:34:39 +0200
|
||||
Subject: [PATCH] libgo: Explicitly define SYS_timer_settime for 32-bit musl
|
||||
arches
|
||||
|
||||
Musl defines SYS_timer_settime32, not SYS_timer_settime, on 32-bit systems.
|
||||
On 32-bit systems musl only defines SYS_timer_settime32 not
|
||||
SYS_timer_settime. This causes the following compilation error:
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
os_linux.go:251:30: error: reference to undefined name '_SYS_timer_settime'
|
||||
251 | return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
|
||||
| ^
|
||||
|
||||
Change-Id: I1f3485028d132ceca1aba595325af24b4d72b894
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/420222
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
||||
This commit fixes this error by defining SYS_timer_settime to
|
||||
SYS_timer_settime32 if the latter is defined.
|
||||
---
|
||||
libgo/sysinfo.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
libgo/sysinfo.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
|
||||
index fc021099..180f5c31 100644
|
||||
index b85add15a7b..ff04706a993 100644
|
||||
--- a/libgo/sysinfo.c
|
||||
+++ b/libgo/sysinfo.c
|
||||
@@ -354,6 +354,11 @@ enum {
|
||||
};
|
||||
@@ -343,6 +343,12 @@ enum {
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if !defined(SYS_timer_settime) && defined(SYS_timer_settime32)
|
||||
+// musl defines SYS_timer_settim32 on 32-bit systems.
|
||||
+// musl libc does not have SYS_timer_settime on 32-bit platforms
|
||||
+// but defines SYS_timer_settime32 instead, alias accordingly.
|
||||
+#ifdef SYS_timer_settime32
|
||||
+#define SYS_timer_settime SYS_timer_settime32
|
||||
+#endif
|
||||
+
|
||||
#if defined(HAVE_LOFF_T)
|
||||
// loff_t can be defined as a macro; for -fgo-dump-spec make sure we
|
||||
// see a typedef.
|
||||
// musl libc has both off64_t and loff_t. However, both of these types
|
||||
// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
|
||||
// -fdump-go-spec option, which is responsible for generating type
|
||||
@@ -1,29 +1,20 @@
|
||||
From a62f20ae78ddd41be682dde8cab075ca4f5dbb2a Mon Sep 17 00:00:00 2001
|
||||
From: Ian Lance Taylor <iant@golang.org>
|
||||
Date: Fri, 22 Jul 2022 11:38:20 -0700
|
||||
Subject: [PATCH] libgo: use POSIX shell arithmetic expansion
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From 75a430f66760802bf1ac5afcd716613e3cf8c77d 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 07:15:25 +0200
|
||||
Subject: [PATCH] libgo: make match.sh POSIX-shell compatible
|
||||
|
||||
Avoid bash-specific ((expression)) syntax. As the bash syntax
|
||||
converts a non-zero value to a zero status (and a zero value to a 1
|
||||
status), and POSIX arithmetic expansion does not, we have to negate
|
||||
the result.
|
||||
|
||||
Based on patch by Sören Tempel.
|
||||
|
||||
Change-Id: I4c64fa15de3994a1a5c7c5ec0de6a82ddd858917
|
||||
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/419154
|
||||
Reviewed-by: Than McIntosh <thanm@google.com>
|
||||
Reviewed-by: Ian Lance Taylor <iant@google.com>
|
||||
The `(( expression ))` syntax is a Bash extension. However, the
|
||||
arithmetic expressions used by the gobuild() function can also
|
||||
be expressed using Arithmetic POSIX Expansion with `$(( expression ))`.
|
||||
Contrary to the Bash expression, the Arithmetic Expansion doesn't set
|
||||
the return value if the expression is non-zero but instead just prints
|
||||
the expression result. Hence, the expression also needs to be negated.
|
||||
---
|
||||
libgo/match.sh | 2 +-
|
||||
libgo/testsuite/gotest | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
libgo/match.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libgo/match.sh b/libgo/match.sh
|
||||
index 7ed587ff..e5ed98de 100755
|
||||
index 7ed587ff794..b355d47429a 100755
|
||||
--- a/libgo/match.sh
|
||||
+++ b/libgo/match.sh
|
||||
@@ -111,7 +111,7 @@ gobuild() {
|
||||
@@ -31,20 +22,7 @@ index 7ed587ff..e5ed98de 100755
|
||||
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
|
||||
fi
|
||||
- (($line))
|
||||
+ return $((!($line)))
|
||||
+ return $((! ( line )))
|
||||
}
|
||||
|
||||
matched=
|
||||
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
|
||||
index 04e4267f..0a0a7e14 100755
|
||||
--- a/libgo/testsuite/gotest
|
||||
+++ b/libgo/testsuite/gotest
|
||||
@@ -302,7 +302,7 @@ gobuild() {
|
||||
if test "$goarch" != "386"; then
|
||||
line=$(echo "$line" | sed -e "s/\\(${wrap}\\)386\\(${wrap}\\)/\10\2/g")
|
||||
fi
|
||||
- (($line))
|
||||
+ return $((!($line)))
|
||||
}
|
||||
|
||||
case "x$gofiles" in
|
||||
+35
-31
@@ -24,15 +24,14 @@ CBUILDROOT="/"
|
||||
_cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
|
||||
pkgname=gcc-armv7
|
||||
_pkgbase=12.2.1 # must match gcc/BASE-VER
|
||||
_pkgsnap=20220924
|
||||
pkgver=${_pkgbase}_git${_pkgsnap}
|
||||
_pkgbase=12.1.1
|
||||
pkgver=12.1.1_git20220630
|
||||
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
|
||||
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
|
||||
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
|
||||
|
||||
pkgname=gcc-armv7
|
||||
pkgrel=2
|
||||
pkgrel=5
|
||||
pkgdesc="Stage2 cross-compiler for armv7"
|
||||
url="https://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -41,7 +40,7 @@ _gccrel=$pkgver-r$pkgrel
|
||||
depends="binutils-armv7 mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armv7 binutils-armv7"
|
||||
subpackages="g++-armv7:gpp libstdc++-dev-armv7:libcxx_dev"
|
||||
subpackages="g++-armv7:gpp"
|
||||
[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target"
|
||||
replaces="libstdc++ binutils"
|
||||
|
||||
@@ -54,7 +53,7 @@ replaces="libstdc++ binutils"
|
||||
: "${LANG_JIT:=true}"
|
||||
|
||||
_libgomp=true
|
||||
_libgcc=false
|
||||
_libgcc=true
|
||||
_libatomic=true
|
||||
_libitm=true
|
||||
|
||||
@@ -205,14 +204,11 @@ makedepends="$makedepends_build $makedepends_host"
|
||||
# when using upstream releases, use this URI template
|
||||
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
|
||||
#
|
||||
# right now, we are using a git snapshot. snapshots are taken from gcc.gnu.org/pub/gcc/snapshots.
|
||||
# However, since they are periodically deleted from the GCC mirrors the utilized snapshots are
|
||||
# mirrored on dev.alpinelinux.org. Please ensure that the snapshot Git commit (as stated in the
|
||||
# README) matches the base commit on the version-specific branch in the Git repository below.
|
||||
# right now, we are using a git snapshot.
|
||||
#
|
||||
# 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://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
|
||||
0001-posix_memalign.patch
|
||||
0002-gcc-poison-system-directories.patch
|
||||
0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -242,17 +238,23 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-${_pkgsnap}/gcc-
|
||||
0027-always-build-libgcc_eh.a.patch
|
||||
0028-ada-libgnarl-compatibility-for-musl.patch
|
||||
0029-ada-musl-support-fixes.patch
|
||||
0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
|
||||
0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
|
||||
0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
|
||||
0033-gcc-go-link-to-libucontext.patch
|
||||
0034-Use-generic-errstr.go-implementation-on-musl.patch
|
||||
0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
|
||||
0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
0045-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
|
||||
0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
|
||||
0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
|
||||
0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
@@ -261,7 +263,7 @@ source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-${_pkgsnap}/gcc-
|
||||
"
|
||||
|
||||
# we build out-of-tree
|
||||
_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-${_pkgsnap}
|
||||
_gccdir="$srcdir"/gcc-$pkgver
|
||||
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
|
||||
|
||||
@@ -553,16 +555,16 @@ libcxx_dev() {
|
||||
depends=
|
||||
replaces="g++"
|
||||
|
||||
amove usr/${_target:+$CTARGET/}lib/libstdc++.a \
|
||||
usr/${_target:+$CTARGET/}lib/libstdc++.so \
|
||||
usr/${_target:+$CTARGET/}lib/libstdc++fs.a \
|
||||
usr/${_target:+$CTARGET/}lib/libsupc++.a \
|
||||
usr/${_target:+$CTARGET/}include/c++
|
||||
amove usr/lib/libstdc++.a \
|
||||
usr/lib/libstdc++.so \
|
||||
usr/lib/libstdc++fs.a \
|
||||
usr/lib/libsupc++.a \
|
||||
usr/include/c++
|
||||
}
|
||||
|
||||
gpp() {
|
||||
pkgdesc="GNU C++ standard library and compiler"
|
||||
depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
|
||||
depends="libstdc++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev"
|
||||
mkdir -p "$subpkgdir/$_gcclibexec" \
|
||||
"$subpkgdir"/usr/bin \
|
||||
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
|
||||
@@ -670,10 +672,6 @@ go() {
|
||||
pkgdesc="Go support for GCC"
|
||||
depends="gcc=$_gccrel libgo=$_gccrel !go"
|
||||
|
||||
# See https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E
|
||||
provides="go-bootstrap"
|
||||
provider_priority=1 # lowest, see community/go
|
||||
|
||||
mkdir -p "$subpkgdir"/$_gcclibexec \
|
||||
"$subpkgdir"/usr/lib \
|
||||
"$subpkgdir"/usr/bin
|
||||
@@ -765,7 +763,7 @@ gnat() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ba4d9e73d108088da26fbefe18d9b245b76771ffe752c2b4b31bdf38a2d0b638fbc115c377526c27311d4d7ffd4e0d236a5af5016bd364ccaa11a4989d1401e8 gcc-12-20220924.tar.xz
|
||||
43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz
|
||||
41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch
|
||||
531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch
|
||||
c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch
|
||||
@@ -795,20 +793,26 @@ b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc
|
||||
674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch
|
||||
f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch
|
||||
5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch
|
||||
3c04b26554a78096296ca9542c77a91219bd26044dd2cb2006db4c1944889a97c215900b3828ba7e8c675162406db543605a815bdfbd915bf810663b1b253bdd 0033-gcc-go-link-to-libucontext.patch
|
||||
74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch
|
||||
9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
|
||||
4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
|
||||
0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch
|
||||
699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch
|
||||
d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
|
||||
ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch
|
||||
8bc6823f0b3c66f7b73d7ddb64ffa6930463285c2e9a14a2bc1882bcc4271144eaa1107d713294699caf9481648163cbf43921a2b8e4ac0d55c78a804bae8a3d 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
e9699f4721778869eb3a8fef2c679208ef5b98584892f30b0e1cb5dc1669f8158198d7792659b1b56c381baf62247d21990dcced9178547affd5d6bfb2d12548 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
d6dc1bfb881a313d167aaa5658790b0f55eea4336c408cfc6613dd5783440dafd0d37c43031a5f3e69be40f632e38371cd4fb6e5f0494ac4ea4d7d5025d2ae02 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
684c6a6d52512b973429b6e709966439ac1e174f9e79a33d4a638b452245b457b34752b4b4034ba983f6a712f86522e7adf715bab00a6603f64a12139c5b1e39 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
|
||||
5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
|
||||
570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
|
||||
a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch
|
||||
15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch
|
||||
25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
|
||||
75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch
|
||||
13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch
|
||||
c33ca2553642c2dbd1c65cd97046548f08775785a3db06d761e3bbe61398c37bc382fe132c0c3fa2101dfd4eea2a6d48bf4fae899a0ddb811c81abd7be35c122 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch
|
||||
03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch
|
||||
be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch
|
||||
179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch
|
||||
c82d7c8d340a76df3d796565a79b0ccc04ddffef39927620e1f3719bf2dc1db101ba13aef24b46c5bc95b7bf1e31c8bda4ab0936ba4c9c5e5047ba08826c982c 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch
|
||||
eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
|
||||
22fb6edf1ed0387e2b93839ffe6e82a7fee420950af90e91199c3488d966702fdeb1a3396d22be0c73a4051525da9349c93d070a0d83b724c83f2b268da6483f 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
|
||||
29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch
|
||||
"
|
||||
@@ -10,7 +10,7 @@ LANG_JAVA=false
|
||||
LANG_GO=false
|
||||
LANG_FORTRAN=false
|
||||
LANG_ADA=false
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
|
||||
# when this variable matches "no*"
|
||||
@@ -26,7 +26,7 @@ _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
pkgname=gcc4-aarch64
|
||||
pkgver=9999
|
||||
_pkgver=4.9.2
|
||||
pkgrel=7
|
||||
pkgrel=6
|
||||
pkgdesc="Stage2 cross-compiler for aarch64"
|
||||
url="http://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -35,7 +35,7 @@ _gccrel=$_pkgver-r$pkgrel
|
||||
depends="binutils-aarch64 mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# We only care about C, so we can compile old Linux kernels
|
||||
LANG_CXX=false
|
||||
|
||||
@@ -10,7 +10,7 @@ LANG_JAVA=false
|
||||
LANG_GO=false
|
||||
LANG_FORTRAN=false
|
||||
LANG_ADA=false
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
|
||||
# when this variable matches "no*"
|
||||
@@ -26,7 +26,7 @@ _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
pkgname=gcc4-armhf
|
||||
pkgver=9999
|
||||
_pkgver=4.9.2
|
||||
pkgrel=7
|
||||
pkgrel=6
|
||||
pkgdesc="Stage2 cross-compiler for armhf"
|
||||
url="http://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -35,7 +35,7 @@ _gccrel=$_pkgver-r$pkgrel
|
||||
depends="binutils-armhf mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# We only care about C, so we can compile old Linux kernels
|
||||
LANG_CXX=false
|
||||
|
||||
@@ -10,7 +10,7 @@ LANG_JAVA=false
|
||||
LANG_GO=false
|
||||
LANG_FORTRAN=false
|
||||
LANG_ADA=false
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
|
||||
# when this variable matches "no*"
|
||||
@@ -26,7 +26,7 @@ _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
pkgname=gcc4-armv7
|
||||
pkgver=9999
|
||||
_pkgver=4.9.2
|
||||
pkgrel=7
|
||||
pkgrel=6
|
||||
pkgdesc="Stage2 cross-compiler for armv7"
|
||||
url="http://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -35,7 +35,7 @@ _gccrel=$_pkgver-r$pkgrel
|
||||
depends="binutils-armv7 mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armv7 binutils-armv7"
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# We only care about C, so we can compile old Linux kernels
|
||||
LANG_CXX=false
|
||||
|
||||
@@ -10,7 +10,7 @@ LANG_JAVA=false
|
||||
LANG_GO=false
|
||||
LANG_FORTRAN=false
|
||||
LANG_ADA=false
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
|
||||
# when this variable matches "no*"
|
||||
@@ -26,7 +26,7 @@ _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
pkgname=gcc6-aarch64
|
||||
pkgver=9999
|
||||
_pkgver=6.4.0
|
||||
pkgrel=12
|
||||
pkgrel=11
|
||||
pkgdesc="Stage2 cross-compiler for aarch64"
|
||||
url="http://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -35,7 +35,7 @@ _gccrel=$_pkgver-r$pkgrel
|
||||
depends="binutils-aarch64 mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-aarch64 binutils-aarch64"
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# We only care about C, so we can compile old Linux kernels
|
||||
LANG_CXX=false
|
||||
|
||||
@@ -10,7 +10,7 @@ LANG_JAVA=false
|
||||
LANG_GO=false
|
||||
LANG_FORTRAN=false
|
||||
LANG_ADA=false
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
|
||||
# when this variable matches "no*"
|
||||
@@ -26,7 +26,7 @@ _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
pkgname=gcc6-armhf
|
||||
pkgver=9999
|
||||
_pkgver=6.4.0
|
||||
pkgrel=12
|
||||
pkgrel=11
|
||||
pkgdesc="Stage2 cross-compiler for armhf"
|
||||
url="http://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -35,7 +35,7 @@ _gccrel=$_pkgver-r$pkgrel
|
||||
depends="binutils-armhf mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf"
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# We only care about C, so we can compile old Linux kernels
|
||||
LANG_CXX=false
|
||||
|
||||
@@ -10,7 +10,7 @@ LANG_JAVA=false
|
||||
LANG_GO=false
|
||||
LANG_FORTRAN=false
|
||||
LANG_ADA=false
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# abuild doesn't try to tries to install "build-base-$CTARGET_ARCH"
|
||||
# when this variable matches "no*"
|
||||
@@ -26,7 +26,7 @@ _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET"
|
||||
pkgname=gcc6-armv7
|
||||
pkgver=9999
|
||||
_pkgver=6.4.0
|
||||
pkgrel=12
|
||||
pkgrel=11
|
||||
pkgdesc="Stage2 cross-compiler for armv7"
|
||||
url="http://gcc.gnu.org"
|
||||
arch="x86_64"
|
||||
@@ -35,7 +35,7 @@ _gccrel=$_pkgver-r$pkgrel
|
||||
depends="binutils-armv7 mpc1"
|
||||
makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
|
||||
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armv7 binutils-armv7"
|
||||
options="!strip"
|
||||
options="!strip !tracedeps"
|
||||
|
||||
# We only care about C, so we can compile old Linux kernels
|
||||
LANG_CXX=false
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
pkgname=grub-efi-x86
|
||||
pkgver=2.06
|
||||
pkgrel=6
|
||||
pkgrel=5
|
||||
|
||||
_arch="x86"
|
||||
_mirror="http://dl-4.alpinelinux.org/alpine/"
|
||||
@@ -22,5 +22,5 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ab6731f2486a1c58af91839c758491cfafad48b899287c3015194699639e2349f3b49cefccdc4040c87c1dc3c3c2fdedfdd023481e613156e4e3e3f455bc8a2b grub-efi-2.06-r6-x86-edge.apk
|
||||
4470549744730a4911c2e6f9b38012057391cea40de2ee46375aaf826786acdf9e22f33df19b3f7c1fe7ee5cbc5ab2e412f0f6f85ea5513dc63e7f59be22bd5b grub-efi-2.06-r5-x86-edge.apk
|
||||
"
|
||||
@@ -2,7 +2,7 @@
|
||||
# Maintainer: Minecrell <minecrell@minecrell.net>
|
||||
pkgname=device-asus-me176c
|
||||
pkgdesc="ASUS MeMO Pad 7 (ME176C(X))"
|
||||
pkgver=6
|
||||
pkgver=5
|
||||
pkgrel=1
|
||||
_commit=3155254999ac36c3051a2118c415de25a072c0f6
|
||||
url="https://postmarketos.org"
|
||||
@@ -12,17 +12,16 @@ options="!check !archcheck"
|
||||
depends="
|
||||
$pkgname-factory
|
||||
alsa-ucm-conf
|
||||
firmware-asus-me176c-acpi
|
||||
intel-ucode
|
||||
linux-edge
|
||||
linux-firmware-none
|
||||
linux-asus-me176c
|
||||
mesa-dri-gallium
|
||||
postmarketos-base
|
||||
sof-firmware
|
||||
"
|
||||
makedepends="devicepkg-dev meson eudev-dev"
|
||||
source="https://github.com/me176c-dev/linux-me176c/archive/$_commit.tar.gz
|
||||
deviceinfo
|
||||
phoc.ini
|
||||
sof-workaround.conf
|
||||
"
|
||||
subpackages="
|
||||
$pkgname-factory
|
||||
@@ -45,8 +44,6 @@ build() {
|
||||
|
||||
package() {
|
||||
devicepkg_package $startdir $pkgname
|
||||
install -Dm644 "$srcdir"/sof-workaround.conf \
|
||||
"$pkgdir"/etc/modprobe.d/sof-workaround.conf
|
||||
}
|
||||
|
||||
factory() {
|
||||
@@ -57,8 +54,8 @@ factory() {
|
||||
}
|
||||
|
||||
nonfree_firmware() {
|
||||
pkgdesc="WiFi/Bluetooth firmware"
|
||||
depends="firmware-asus-me176c"
|
||||
pkgdesc="WiFi, Bluetooth and Sound firmware"
|
||||
depends="linux-firmware-intel firmware-asus-me176c"
|
||||
mkdir "$subpkgdir"
|
||||
}
|
||||
|
||||
@@ -82,7 +79,6 @@ libva() {
|
||||
|
||||
sha512sums="
|
||||
75243e3d0bc9a352465683ec8cf8b83566e4131bb7fae0f388267a62bdbf4691c955ed034b30df550f921b771080688123ae8db144b72f786bf1677ef1d83f57 3155254999ac36c3051a2118c415de25a072c0f6.tar.gz
|
||||
2f5bc546336673452413948d3bbed6af45ef08f0b568b6398739a4c6a918e8b4c358191f0a8c84efccde490d559883ceab4ba81dfcf30593f3552dd867930ab5 deviceinfo
|
||||
c8bb189b08035e647e07dec120a6e166d871c17a227987387228c8bf6ff264e029f950c69bb560d3062cee0e27e4fb93449523592558108690a82c6d40931de1 deviceinfo
|
||||
3823556d741a352fc7f43567d7218255a27c45c2c5d4d4bdf23f4d26ce2828c5a1c642519b84fef7f59756c990e6a199d72e6ba0c277939b08a40526c3ff3714 phoc.ini
|
||||
3d0dd014ac7c2700c4ceb7adf549b96dd0eaa7e75bc4ebee7aab23dc31679edc822e9f6ab0e51a1500459e7f04683c00b5a5c600aa2e13a61697e415ad4a019d sof-workaround.conf
|
||||
"
|
||||
@@ -6,7 +6,7 @@ deviceinfo_name="ASUS MeMO Pad 7 (ME176C(X))"
|
||||
deviceinfo_codename="asus-me176c"
|
||||
deviceinfo_manufacturer="ASUS"
|
||||
deviceinfo_year="2014"
|
||||
deviceinfo_modules_initfs="gpio-crystalcove intel_crystal_cove_charger 8250_dw x86-android-tablets mmc_block sdhci_acpi phy-tusb1210 dwc3 dwc3-pci goodix_ts"
|
||||
deviceinfo_modules_initfs="goodix"
|
||||
deviceinfo_arch="x86_64"
|
||||
|
||||
# Device related
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
# https://github.com/thesofproject/sof/issues/3868
|
||||
options snd_sof sof_debug=1
|
||||
@@ -2,8 +2,8 @@
|
||||
# Maintainer: Luca Weiss <luca@z3ntu.xyz>
|
||||
pkgname=device-fairphone-fp4
|
||||
pkgdesc="Fairphone 4"
|
||||
pkgver=0.9
|
||||
pkgrel=0
|
||||
pkgver=0.8
|
||||
pkgrel=1
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
@@ -11,15 +11,13 @@ options="!check !archcheck"
|
||||
depends="
|
||||
linux-postmarketos-qcom-sm6350
|
||||
make-dynpart-mappings
|
||||
mesa-dri-gallium
|
||||
mesa-vulkan-freedreno
|
||||
mkbootimg
|
||||
postmarketos-base
|
||||
postmarketos-update-kernel
|
||||
qbootctl
|
||||
swclock-offset
|
||||
"
|
||||
makedepends="devicepkg-dev"
|
||||
install="$pkgname.post-install $pkgname.post-upgrade"
|
||||
source="
|
||||
90-feedbackd-aw8695.rules
|
||||
deviceinfo
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
rc-update add qbootctl default
|
||||
@@ -1 +0,0 @@
|
||||
device-fairphone-fp4.post-install
|
||||
@@ -2,52 +2,49 @@
|
||||
# Maintainer: Sicelo <absicsz@gmail.com>
|
||||
# Co-Maintainer: Danct12 <danct12@disroot.org>
|
||||
pkgname=device-nokia-n900
|
||||
pkgver=8.2
|
||||
pkgrel=0
|
||||
pkgver=8
|
||||
pkgrel=4
|
||||
pkgdesc="Nokia N900"
|
||||
url="https://postmarketos.org"
|
||||
arch="armv7"
|
||||
license="MIT"
|
||||
depends="postmarketos-base linux-nokia-n900 u-boot-tools kbd kbd-bkeymaps ofono alsa-utils"
|
||||
depends="postmarketos-base linux-nokia-n900 u-boot-tools kbd kbd-bkeymaps ofono mesa-dri-gallium alsa-utils"
|
||||
makedepends="devicepkg-dev u-boot-tools kbd kbd-bkeymaps"
|
||||
install="$pkgname.post-install"
|
||||
subpackages="
|
||||
$pkgname-x11
|
||||
$pkgname-xkeyboard-config:xkeyboard_config
|
||||
$pkgname-i3wm
|
||||
$pkgname-nonfree-firmware:nonfree_firmware
|
||||
"
|
||||
source="
|
||||
deviceinfo
|
||||
uboot-script.cmd
|
||||
backlight-enable.sh
|
||||
udev/90-touchscreen-dev.rules
|
||||
udev/10-nokia-modem.rules
|
||||
acpi_handler.sh
|
||||
acpi.map
|
||||
keymaps/rx51_us.map
|
||||
keymaps/rx51_ch.map
|
||||
keymaps/rx51_it.map
|
||||
keymaps/rx51_fise.map
|
||||
keymaps/40-xkb.conf
|
||||
pointercal
|
||||
asound.state.speakers
|
||||
asound.state.headset
|
||||
i3wm/scripts/battery-bq27200
|
||||
i3wm/scripts/ofono
|
||||
i3wm/scripts/calendar
|
||||
i3wm/scripts/wifi
|
||||
i3wm/conky.conf
|
||||
i3wm/i3wm.conf
|
||||
i3wm/i3blocks.conf
|
||||
i3wm/protip_shell.sh
|
||||
xorg.conf
|
||||
10-noroot-suspend
|
||||
10-initfs-keymap.files
|
||||
10-initfs-keymap.sh
|
||||
10-noroot-suspend
|
||||
acpi.map
|
||||
acpi_handler.sh
|
||||
asound.state.headset
|
||||
asound.state.speakers
|
||||
backlight-enable.sh
|
||||
device-nokia-n900.start
|
||||
deviceinfo
|
||||
i3wm/conky.conf
|
||||
i3wm/i3blocks.conf
|
||||
i3wm/i3wm.conf
|
||||
i3wm/protip_shell.sh
|
||||
i3wm/scripts/battery-bq27200
|
||||
i3wm/scripts/calendar
|
||||
i3wm/scripts/ofono
|
||||
i3wm/scripts/wifi
|
||||
keymaps/40-xkb.conf
|
||||
keymaps/rx51_ch.map
|
||||
keymaps/rx51_fise.map
|
||||
keymaps/rx51_it.map
|
||||
keymaps/rx51_us.map
|
||||
n900-wlan-data.initd
|
||||
pointercal
|
||||
uboot-script.cmd
|
||||
udev/10-nokia-modem.rules
|
||||
udev/90-touchscreen-dev.rules
|
||||
x11-keymap
|
||||
xorg.conf
|
||||
"
|
||||
options="!check !archcheck"
|
||||
|
||||
@@ -122,13 +119,6 @@ x11() {
|
||||
"$subpkgdir"/etc/X11/xorg.conf.d/11-n900.conf
|
||||
}
|
||||
|
||||
xkeyboard_config() {
|
||||
install_if="$pkgname=$pkgver-r$pkgrel xkeyboard-config"
|
||||
replaces="xkeyboard-config"
|
||||
install -D -m644 "$srcdir"/x11-keymap \
|
||||
"$subpkgdir"/usr/share/X11/xkb/symbols/nokia_vndr/rx-51
|
||||
}
|
||||
|
||||
i3wm() {
|
||||
install_if="$pkgname postmarketos-ui-i3wm"
|
||||
depends="unclutter-xfixes conky feh postmarketos-artwork-wallpapers pm-utils i3blocks"
|
||||
@@ -154,15 +144,12 @@ i3wm() {
|
||||
|
||||
nonfree_firmware() {
|
||||
pkgdesc="Wifi firmware"
|
||||
depends="linux-firmware-ti-connectivity wl1251-cal"
|
||||
install="$subpkgname.post-install"
|
||||
triggers="$subpkgname.trigger=/lib/firmware/ti-connectivity"
|
||||
|
||||
install -Dm755 "$srcdir/n900-wlan-data.initd" "$subpkgdir/etc/init.d/n900-wlan-data"
|
||||
depends="linux-firmware-ti-connectivity"
|
||||
mkdir "$subpkgdir"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
a4e9196f8ca31fea6f74af078c1e1df1e7be89b63b5d0d292d7f198cfae5f30247dd002536f0f9251ed96518a54aa2b4783870046283e6cd30093115f60cce8e deviceinfo
|
||||
be33e64dd429329adb877a7081e75903d6db77019bd4ec63075a7f9b6e1e50ebc59562062656299ca9c703d5b7452b8bf0a849ba3aa173274ba9da18fe88fb72 deviceinfo
|
||||
3ae550b50f963695be30eb0e03c31fe7a92aad73174873efe5b73d446b74da5763b6fe9495b91bbdbe307723f6510ebc6639437904815e9251a094ce9bec5b11 uboot-script.cmd
|
||||
3d55e34b95791636e44a5f41754f3d0de039dbba41f7a556d43a95c9e64afcfa930046b4b96b40020b6f196096ffba93514682927e32fa4488686fdd19c6da5a backlight-enable.sh
|
||||
c6012aef28b096141b924fced226ec99fb93eb53b69c064a8887d8fecdf8dc08a3ba3db399e18d88374c6ef4c59013a30699c7e4d76e5cb771040582573a0527 90-touchscreen-dev.rules
|
||||
@@ -190,6 +177,4 @@ a91f98daa60efa2beb2ff6b405097f92edca5f1bbb9e7675499139be52ca2570712f8f06f9032ef2
|
||||
6b475c12eca8563be48c562a1cb4ad8ca6a05d70fc54b21288b2dd7435a80a6f53351aa870db96d5bbecf1b1c5cb00dfe35f5066e6d3fd0ad0369e66aeef5a21 10-initfs-keymap.files
|
||||
4656d3b3ced0a86e2d6315c89322899f646a689e9cb64609aa8ad5a676b23d93706d8a37f3be6f6b12c6b1e8501b7d26ecafecf27322333850513a6805c61910 10-initfs-keymap.sh
|
||||
e6bbac8de1a198ba716f44ade76606e1e0adcc574156b855ac41be5eb5308389d3277fd89cc34b119fbc33d9801ab9f79a6ff213392596bff40bc17e931c05ef device-nokia-n900.start
|
||||
654f2e1b8b7b64fc8c82a5f3c2b76b9d88f56d8dda520c1ce162648d65031bf62702e3bd43e135ab040b927c403f9970d6efae53f957bf1e55954125b358b313 x11-keymap
|
||||
b50e7f37ffb1fa0bb782b117a4e8bcfdb722b6127c3e5d643e90cd901a1f4e65e77a0773ed418673c8195595347482be0c8096f5a723e840315ad61ccd043b66 n900-wlan-data.initd
|
||||
"
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
rc-update add n900-wlan-data boot
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -f /lib/firmware/ti-connectivity/wl1251-nvs.bin ] && n900-update-wl1251
|
||||
|
||||
exit 0
|
||||
@@ -7,6 +7,8 @@ deviceinfo_manufacturer="Nokia"
|
||||
deviceinfo_codename="nokia-n900"
|
||||
deviceinfo_year="2009"
|
||||
deviceinfo_chassis="handset"
|
||||
deviceinfo_keyboard="true"
|
||||
deviceinfo_keymaps="us/rx51_us ch/rx51_ch it/rx51_it fi/rx51_fi se/rx51_se"
|
||||
deviceinfo_dtb="omap3-n900"
|
||||
deviceinfo_append_dtb="true"
|
||||
deviceinfo_modules_initfs="tsc2005 tsc200x-core omap_wdt twl4030_wdt omap-sham"
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/sbin/openrc-run
|
||||
description="Update N900 WLAN calibration data"
|
||||
|
||||
depend()
|
||||
{
|
||||
before modules
|
||||
after localmount
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
if [ ! -f /var/lib/n900_cal/done ]
|
||||
then
|
||||
n900-update-wl1251
|
||||
mkdir -p /var/lib/n900_cal
|
||||
touch /var/lib/n900_cal/done
|
||||
fi
|
||||
|
||||
eend $?
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -4,7 +4,7 @@
|
||||
pkgname=device-odroid-hc2
|
||||
pkgdesc="ODROID HC2"
|
||||
pkgver=0.7
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="armv7"
|
||||
@@ -54,7 +54,7 @@ tools() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
69b4fa44985adc3b2de5a516fa54448024973633d53130eee6d5055b1ccf9aa4b83fe0cf3ee30c69c5defcbe20e776995b8b4682e0503c76e0189a63cd582950 deviceinfo
|
||||
6c4be5c1d2ba17b6ab5e093a5bd649d35af5cb4e3412ddad4073ca48900bbb4e7d25233f043dc661c66df5a7b6790502f19477e2c3cab711ec4968514494314d deviceinfo
|
||||
f3e7a39d53c072f4ae68fcca241f88b05939052ff1c9bd8d45b47d2b336f3c239689857051ff3c7a96caefd5c10d2e34d9b921c62f993f80faca2999eb7beab8 uboot-script.cmd
|
||||
669a0561251f287f072c9c1fc37d89b49a47fc4a4e5134c9e6681750ae960e5827043166136b7d5b9ad52c931b060bdcb6d0b5335c2e9fdb4eefd82f131ded93 install-rootfs-hdd.sh
|
||||
"
|
||||
@@ -25,5 +25,5 @@ deviceinfo_external_storage="true"
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="none"
|
||||
deviceinfo_sd_embed_firmware="u-boot/odroid-hc2/bl1.bin:1,u-boot/odroid-hc2/bl2.bin:31,u-boot/odroid-xu3/u-boot.bin:63,u-boot/odroid-hc2/tzsw.bin:1503"
|
||||
deviceinfo_sd_embed_firmware_step_size="512"
|
||||
deviceinfo_boot_part_start="8192"
|
||||
deviceinfo_sd_embed_firmware_step_size=512
|
||||
deviceinfo_boot_part_start=8192
|
||||
@@ -3,7 +3,7 @@
|
||||
pkgname=device-pine64-pinebookpro
|
||||
pkgdesc="PINE64 Pinebook Pro"
|
||||
pkgver=10
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
@@ -11,6 +11,7 @@ options="!check !archcheck"
|
||||
depends="
|
||||
alsa-ucm-conf>=1.2.7
|
||||
linux-postmarketos-rockchip>=5.14
|
||||
mesa-dri-gallium
|
||||
nvme-cli
|
||||
postmarketos-base
|
||||
u-boot-pinebookpro
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
pkgname=device-pine64-pinephonepro
|
||||
pkgdesc="PINE64 PinePhone Pro"
|
||||
pkgver=3.3
|
||||
pkgrel=4
|
||||
pkgrel=2
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
@@ -13,8 +13,13 @@ depends="
|
||||
alsa-ucm-conf>=1.2.6.2
|
||||
eg25-manager>=0.4.2
|
||||
linux-pine64-pinephonepro
|
||||
mesa-dri-gallium
|
||||
postmarketos-base
|
||||
fwupd>=1.8.6
|
||||
fwupd
|
||||
fwupd-plugin-fastboot
|
||||
fwupd-plugin-logind
|
||||
fwupd-plugin-modem_manager
|
||||
fwupd-plugin-upower
|
||||
"
|
||||
makedepends="
|
||||
devicepkg-dev
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
pkgname=device-pine64-pinetab
|
||||
pkgdesc="PINE64 PineTab"
|
||||
pkgver=0.13
|
||||
pkgrel=4
|
||||
pkgrel=2
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
@@ -12,6 +12,7 @@ options="!check !archcheck"
|
||||
depends="
|
||||
alsa-ucm-conf>=1.2.6.2
|
||||
mesa-egl
|
||||
mesa-dri-gallium
|
||||
postmarketos-base
|
||||
u-boot-pinephone>=2021.01_git20201228-r2
|
||||
u-boot-tools
|
||||
@@ -161,7 +162,7 @@ upower() {
|
||||
|
||||
sha512sums="
|
||||
8d1ef04911f1cfa7eda8185f4f4d807af23105a7c8f23d8c18f02afeccd8ab124de70c2e2760c154a3128fe3793447039fb0abf37aa496f597d27051e275033e 99-pinetab-keyboard.hwdb
|
||||
fb3b777fc4a592e730914716858788f6848f53aa7d4eb18f844087e5af3fb5f437210c7ece85c6866ba897fc151db05a5e21be9d2d24c8297662667f23e2a9d6 deviceinfo
|
||||
6274b664ad42456ff51ec4ec2dea9749bff59e0eee0c2d1f7e8950934ee92e410e554df246f81bd01813ddfae5e6a9001a8fcad05815beab536d1547251d5aeb deviceinfo
|
||||
9244687bfea20c78120f7c48388d141eff3e23a421e48504eac1479ec7f51197d9ca72468c9cc33c6e3d3fa32ee3514711545816e607d49870226e4a41a60a85 gsk-renderer-gl.sh
|
||||
6bc22b369b2d9058b702ac7a7862abaefaf8179b43491868bdb008d181b59104f1ded89db1da51a810e1ccdc803a579b924a438674283a65afc3a9c4d2894caf kirigami-lowpower.sh
|
||||
5c683f2cf27b2f982c8581251688834634957143334011861400d3eed27b6590f37055fe61c8af632552435dba581fa990a44c1e5689a3c8fe642fd095b740ce phoc.ini
|
||||
|
||||
@@ -28,7 +28,6 @@ deviceinfo_flash_method="none"
|
||||
deviceinfo_generate_legacy_uboot_initfs="true"
|
||||
deviceinfo_sd_embed_firmware="u-boot/pine64-pinephone/u-boot-sunxi-with-spl-528.bin:8"
|
||||
|
||||
# Allwinner Technology Co., Ltd.
|
||||
deviceinfo_usb_idVendor="0x1f3a"
|
||||
# unknown (same as stock Android on PineTab)
|
||||
deviceinfo_usb_idProduct="0x1007"
|
||||
# USB related
|
||||
deviceinfo_usb_idVendor="0x1f3a" # Allwinner Technology Co., Ltd.
|
||||
deviceinfo_usb_idProduct="0x1007" # unknown (same as stock Android on PineTab)
|
||||
@@ -3,13 +3,13 @@
|
||||
# Co-Maintainer: Bart Ribbers <bribbers@disroot.org>
|
||||
pkgname=device-pine64-rockpro64
|
||||
pkgver=2
|
||||
pkgrel=2
|
||||
pkgrel=1
|
||||
pkgdesc="PINE64 ROCKPro64"
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
options="!check !archcheck"
|
||||
depends="postmarketos-base linux-postmarketos-rockchip u-boot-rockpro64"
|
||||
depends="postmarketos-base linux-postmarketos-rockchip u-boot-rockpro64 mesa-dri-gallium"
|
||||
makedepends="devicepkg-dev"
|
||||
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
|
||||
source="deviceinfo
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# Co-Maintainer: Minecrell <minecrell@minecrell.net>
|
||||
pkgname=device-samsung-a3
|
||||
pkgdesc="Samsung Galaxy A3 (2015)"
|
||||
pkgver=11.1
|
||||
pkgver=11
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
@@ -56,6 +56,6 @@ phosh() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
68f0855574aca23d078509e2afd525faa81ae76529dadf703d75f8b6b25be4d8a443b6a4832bca01f0d05efd7124f5ef398f1954bb3357b09725811f3f49c038 deviceinfo
|
||||
dac014f2ebc1c461e43917fcfc020675c10ac39e17b83b0e0e2246b159db1f61ce024df21624f2635729f29521b30b4cce29b4451931cb27cf4d0f34b19ec509 deviceinfo
|
||||
e8f734a2f8d154813dbb493f0d58af50a7f624ffed41967a81493b975a6211efc6d30743b23825562cfd126791cbdd3348bfbed32eeece9b8acec0a37c3c51b6 phoc.ini
|
||||
"
|
||||
@@ -33,8 +33,3 @@ deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# Samsung Electronics Co., Ltd
|
||||
deviceinfo_usb_idVendor="0x04e8"
|
||||
# Galaxy (MTP)
|
||||
deviceinfo_usb_idProduct="0x6860"
|
||||
@@ -3,7 +3,7 @@
|
||||
# Co-Maintainer: Alexey Min <alexey.min@gmail.com>
|
||||
pkgname=device-samsung-a5
|
||||
pkgdesc="Samsung Galaxy A5 (2015)"
|
||||
pkgver=10.1
|
||||
pkgver=10
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
@@ -42,5 +42,5 @@ nonfree_firmware() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
6af9b3ef868bfc398e645746bf1e95829eb0900bd78b8b7f68bf1eae8248f70a49287f49bc79deaf690b6a3b73c899c120518006f9552693b6d8a123b5641354 deviceinfo
|
||||
ee496db47c95cb67b502c5f11d7390b679fbc8fc011eab1f9d7639b5df02c01501cb9963f638adaed93e6626a23e15be6d53b093f2b55f7d19108d06277939f7 deviceinfo
|
||||
"
|
||||
@@ -33,8 +33,3 @@ deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# Samsung Electronics Co., Ltd
|
||||
deviceinfo_usb_idVendor="0x04e8"
|
||||
# Galaxy (MTP)
|
||||
deviceinfo_usb_idProduct="0x6860"
|
||||
@@ -2,7 +2,7 @@
|
||||
# Maintainer: Raymond Hackley <raymondhackley@protonmail.com>
|
||||
pkgname=device-samsung-e7
|
||||
pkgdesc="Samsung Galaxy E7"
|
||||
pkgver=1.1
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
@@ -37,5 +37,5 @@ nonfree_firmware() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
8ca80e24c3a83b39b4fe5f8ae4b77732009dec40dc686feb996c9f7d1da82090f166f0bf374434dc4d3ee3c9976107e3bbb638b37b05e2dd5de1f45208c0c173 deviceinfo
|
||||
75fb5dda5b4b0444ec06c6ac86b946428932935f321b3e5ed18b5b053639923b2aadf95d5c2319778d1afc6b2ce107fc8abdce854050ce121625cc93211c6e96 deviceinfo
|
||||
"
|
||||
@@ -31,8 +31,3 @@ deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# Samsung Electronics Co., Ltd
|
||||
deviceinfo_usb_idVendor="0x04e8"
|
||||
# Galaxy (MTP)
|
||||
deviceinfo_usb_idProduct="0x6860"
|
||||
@@ -4,12 +4,12 @@
|
||||
pkgname=device-samsung-espresso3g
|
||||
pkgdesc="Samsung Galaxy Tab 2 (7.0 inch)"
|
||||
pkgver=3
|
||||
pkgrel=4
|
||||
pkgrel=3
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="armv7"
|
||||
options="!check !archcheck"
|
||||
depends="postmarketos-base postmarketos-update-kernel linux-samsung-espresso3g mkbootimg"
|
||||
depends="postmarketos-base postmarketos-update-kernel linux-samsung-espresso3g mesa-dri-gallium mkbootimg"
|
||||
makedepends="devicepkg-dev"
|
||||
source="deviceinfo"
|
||||
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Maintainer: Nikita Travkin <nikita@trvn.ru>
|
||||
pkgname=device-samsung-gt510
|
||||
pkgdesc="Samsung Galaxy Tab A 9.7 (2015)"
|
||||
pkgver=4.1
|
||||
pkgver=4
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
@@ -50,7 +50,7 @@ phosh() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
f347a088c69dfcc5ca72ad0ae0563af0c293ad935543ebfc85ac136640ebf36e752bef4081b2078802a8d629d44c58be02f1465eec7f78771bb4df162724fe93 deviceinfo
|
||||
5acddf5145a0ec2cbe056bd120b1413fd6efee441f15127ce6f132ab470f326ba729f71afc70ba4d8dc9dab62e49fa20217632f08f9ed6d5b2ddda033ed32009 deviceinfo
|
||||
6aedd5eeac4d21356678f5399f3f0946392c9a7477ac21d39b8e761133dc8ed67adb4966647314f71d5263483ab68cad92847dacff95ffa45eabfc33c9f405b5 pointercal
|
||||
ed612b090c1ee512fc257368082fe0c88ca6c98a9d673ece68593739c7a41b4f9dca5d9360de6f84d206f297feba480a9f1982301132e08a14a5ff920a2675a6 phoc.ini
|
||||
"
|
||||
@@ -31,8 +31,3 @@ deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# Samsung Electronics Co., Ltd
|
||||
deviceinfo_usb_idVendor="0x04e8"
|
||||
# Galaxy (MTP)
|
||||
deviceinfo_usb_idProduct="0x6860"
|
||||
@@ -2,7 +2,7 @@
|
||||
# Maintainer: Nikita Travkin <nikita@trvn.ru>
|
||||
pkgname=device-samsung-gt58
|
||||
pkgdesc="Samsung Galaxy Tab A 8.0 (2015)"
|
||||
pkgver=4.1
|
||||
pkgver=4
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
@@ -46,6 +46,6 @@ phosh() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
fb4ffa1b0fd76edb0d9769f36cba6dff2f937cb493f3e0fec01206319489839bde951327ea5bc8c677ec626c393c827eeb6bda739867bbfe3ded65dde34a1339 deviceinfo
|
||||
b374fc9b75b0693a27c94116f652410a0b026077beba91527104fd0e3e720ddec0c1e48b54714af810b514571d5f2021f8facf34a9ea8de35b92aa060af64d19 deviceinfo
|
||||
ed612b090c1ee512fc257368082fe0c88ca6c98a9d673ece68593739c7a41b4f9dca5d9360de6f84d206f297feba480a9f1982301132e08a14a5ff920a2675a6 phoc.ini
|
||||
"
|
||||
@@ -32,9 +32,4 @@ deviceinfo_flash_offset_ramdisk="0x02000000"
|
||||
deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# Samsung Electronics Co., Ltd
|
||||
deviceinfo_usb_idVendor="0x04e8"
|
||||
# Galaxy (MTP)
|
||||
deviceinfo_usb_idProduct="0x6860"
|
||||
deviceinfo_flash_sparse=true
|
||||
@@ -3,7 +3,7 @@
|
||||
pkgname=device-samsung-m0
|
||||
pkgdesc="Samsung Galaxy S III"
|
||||
pkgver=6.2
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="armv7"
|
||||
@@ -11,6 +11,7 @@ options="!check !archcheck"
|
||||
depends="
|
||||
alsa-ucm-conf
|
||||
linux-postmarketos-exynos4
|
||||
mesa-dri-gallium
|
||||
mkbootimg
|
||||
postmarketos-base
|
||||
postmarketos-update-kernel
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Maintainer: Minecrell <minecrell@minecrell.net>
|
||||
pkgname=device-samsung-serranove
|
||||
pkgdesc="Samsung Galaxy S4 Mini Value Edition"
|
||||
pkgver=12.1
|
||||
pkgver=12
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
@@ -52,6 +52,6 @@ phosh() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
97e284d05d40bcf90a01a7da01d31664b748678b23cf90eeba74b6ccec7e19249f6bf939d900277ec20ac796c21cbf79ed09be9d05aaf408f61a31df9d73b361 deviceinfo
|
||||
d666cf805d292d13d9e15a350b203580f016f455dad16cbc4a94471edb145fd464c5ad92a50077995234a9db1322e605e0294a6c5d7342fa6675b1bfec4eb69e deviceinfo
|
||||
1bc90a1a67309b43435039332b2a1d7e606408c6429b3cb8991a57f53dd4de36fbe471481b6481fbdb098c3819344e8093dd8eab0d34eb3c091ab6d8abd5c087 phoc.ini
|
||||
"
|
||||
@@ -34,8 +34,3 @@ deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# Samsung Electronics Co., Ltd
|
||||
deviceinfo_usb_idVendor="0x04e8"
|
||||
# Galaxy (MTP)
|
||||
deviceinfo_usb_idProduct="0x6860"
|
||||
Loaded 100 of 874 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user