Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

autoconf: Sync config.guess, config.sub with CPython repo, update to latest #36

Merged
merged 3 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions autoconf/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ FROM docker.io/library/ubuntu:24.04
ARG AUTOCONF_VERSION="2.72"
ARG AUTOCONF_ARCHIVE_VERSION="2023.02.20"
ARG AUTOMAKE_VERSION="1.16.5"
# Specific revision of https://git.savannah.gnu.org/git/config.git
# for config.guess and config.sub.
ARG CONFIG_GIT_REV="00b15927496058d23e6258a28d8996f87cf1f191"

LABEL org.opencontainers.image.source="https://github.com/python/cpython-devcontainers"
LABEL org.opencontainers.image.base.name="docker.io/library/ubuntu:22.04"
Expand Down Expand Up @@ -40,6 +43,15 @@ RUN PATCH_VERBOSE=1 curl https://ftp.gnu.org/gnu/autoconf-archive/autoconf-archi
&& ./configure --prefix=/usr/local \
&& make \
&& make install
ADD --chmod=755 https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=${CONFIG_GIT_REV} \
/usr/local/share/autoconf/build-aux/config.guess
ADD --chmod=755 https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=${CONFIG_GIT_REV} \
/usr/local/share/autoconf/build-aux/config.sub
COPY config.sub.patch .
RUN p=$(pwd)/config.sub.patch \
&& cd /usr/local/share/autoconf/build-aux \
&& patch -p1 <$p \
&& rm "$p"

# https://stackoverflow.com/questions/8811381/possibly-undefined-macro-ac-msg-error/49103418#49103418
RUN cp /usr/local/share/aclocal/*.m4 /usr/share/aclocal \
Expand Down
64 changes: 64 additions & 0 deletions autoconf/config.sub.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
From 7a7c6fc48512405ede8b2db440b702e866364b00 Mon Sep 17 00:00:00 2001
From: Russell Keith-Magee <[email protected]>
Date: Mon, 26 Feb 2024 09:21:10 +0800
Subject: [PATCH] config.sub: Include support for arm64_32 and iOS/tvOS/watchOS
simulators

* Normalise the watchOS CPU architecture descriptor used by
Apple (`arm64_32`).
* Accept the `-simulator` suffix for descriptors for iOS, tvOS and
watchOS.

The following is the list of compiler triples generated by Apple's
clang toolchains for iOS 12.0, tvOS 9.0, and watchOS 4.0:

* `arm64-apple-ios12.0`
* `x86_64-apple-ios12.0-simulator`
* `arm64-apple-ios12.0-simulator`
* `arm64-apple-tvos9.0`
* `x86_64-apple-tvos9.0-simulator`
* `arm64-apple-tvos9.0-simulator`
* `arm64_32-apple-watchos4.0`
* `arm64-apple-watchos4.0-simulator`

The `-simulator` suffix is significant because iOS devices and iOS
simulators have a different ABI. It is therefore essential that these
can be differentiated in a compiler triple.
---
config.sub | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/config.sub b/config.sub
index 4aaae46..335706d 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@

# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale

-timestamp='2024-05-27'
+timestamp='2025-01-06'

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -1194,7 +1194,7 @@ case $cpu-$vendor in
xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- arm64-* | aarch64le-*)
+ arm64-* | aarch64le-* | arm64_32-*)
cpu=aarch64
;;

@@ -2249,6 +2249,8 @@ case $kernel-$os-$obj in
;;
*-eabi*- | *-gnueabi*-)
;;
+ ios*-simulator- | tvos*-simulator- | watchos*-simulator- )
+ ;;
none--*)
# None (no kernel, i.e. freestanding / bare metal),
# can be paired with an machine code file format
--
2.47.1

8 changes: 8 additions & 0 deletions autoconf/entry.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ if [ "$#" = "0" ]; then
fi

echo "Rebuilding configure script using $($AUTOCONF --version | head -n 1)"
set -x
# autoreconf's '--force' option doesn't affect any of the files installed
# by the '--install' option. Remove the files to truly force them to be
# updated so that the CPython repo doesn't drift from this repo.
rm -f /src/aclocal.m4
rm -f /src/config.guess
rm -f /src/config.sub
rm -f /src/install-sh
exec $AUTORECONF -ivf -Werror $@
fi

Expand Down
Loading