|
Message-ID: <31026f85-b5af-ec92-8ec4-4fb3b9f98b6c@bell-sw.com> Date: Fri, 10 Jan 2020 15:34:13 +0300 From: Alexander Scherbatiy <alexander.scherbatiy@...l-sw.com> To: musl@...ts.openwall.com, Rich Felker <dalias@...c.org> Subject: Re: gnu autoconf AC_CANONICAL_BUILD returns linux-gnu build_os on Alpine Linux 3.10.3 On 30.12.2019 19:54, Rich Felker wrote: > On Mon, Dec 30, 2019 at 02:24:56PM +0300, Scherbatiy Alexander wrote: >> Hello, >> >> gnu autoconf AC_CANONICAL_BUILD returns linux-gnu build_os variable on Alpine Linux 3.10.3. >> >> Here is a snippet from the configure.ac file which I tested in docker alpine:3.10.3 >> ---------------- >> AC_CANONICAL_BUILD >> AC_MSG_NOTICE([build_os=$build_os]) >> ---------------- >> Output: >> ---------------- >> checking build system type... x86_64-pc-linux-gnu >> configure: build_os=linux-gnu >> ---------------- >> >> The same code on Alpine 3.8.4 (docker alpine:3.8 ) returns: >> ---------------- >> checking build system type... x86_64-pc-linux-musl >> configure: build_os=linux-musl >> ---------------- >> >> Is it expected that build_os is detected as linux-gnu instead of linux-musl on Alpine 3.0.3? > Where was autoconf run to generate the configure script? Production of > linux-musl tuples is a new behavior in recent autoconf, and whether it > happens depends on what version of autoconf was used to build the > configure script, not what versions of software are present where the > configure script runs. Below are outputs of running autoconf on Alpine Linux in docker. The used autoconf (GNU Autoconf) version is 2.69. Alpine Linux 3.10.3: ---------- > docker run --rm -it alpine:3.10.3 > apk add autoconf automake fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz (1/5) Installing m4 (1.4.18-r1) (2/5) Installing libbz2 (1.0.6-r7) (3/5) Installing perl (5.28.2-r1) (4/5) Installing autoconf (2.69-r2) (5/5) Installing automake (1.16.1-r0) Executing busybox-1.30.1-r2.trigger OK: 47 MiB in 19 packages > autoreconf -i > ./configure ... configure: build_os=linux-gnu ---------- Alpine Linux 3.8.4: ---------- > docker run --rm -it alpine:3.8.4 > apk add autoconf automake fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz (1/5) Installing m4 (1.4.18-r1) (2/5) Installing libbz2 (1.0.6-r7) (3/5) Installing perl (5.26.3-r0) (4/5) Installing autoconf (2.69-r2) (5/5) Installing automake (1.16.1-r0) Executing busybox-1.28.4-r3.trigger OK: 45 MiB in 18 packages > autoreconf -i > ./configure ... configure: build_os=linux-musl ---------- > Use of this result is almost certainly a bug/misuse of configure. Run > a configure test for whatever property you're depending on, not > whether the name is linux-musl vs linux-gnu. The port of OpenJDK to Alpine Linux project Portola uses AC_CANONICAL_BUILDĀ autoconf property to set HOTSPOT_LIBC property [1]. What is the right way to define which libc should be used in this case? [1] https://hg.openjdk.java.net/portola/portola/file/c4a7cf80a3bd/make/autoconf/platform.m4#l209 Thanks, Alexander. > Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.