From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14354 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Fangrui Song Newsgroups: gmane.linux.lib.musl.general Subject: [PATCH] configure: make AR and RANLIB customizable Date: Wed, 3 Jul 2019 08:53:12 +0000 Message-ID: <20190703085312.oxm3kiqjx4dmid3o@gmail.com> References: <20190517153537.teffxwvopvhs36fe@gmail.com> <20190517164342.GB23599@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="dng5ueafcoz2or7x" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="48421"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20180223-112-0c5bf3 Cc: musl@lists.openwall.com To: Rich Felker Original-X-From: musl-return-14370-gllmg-musl=m.gmane.org@lists.openwall.com Wed Jul 03 10:53:36 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1hib1C-000CRt-CD for gllmg-musl@m.gmane.org; Wed, 03 Jul 2019 10:53:34 +0200 Original-Received: (qmail 7510 invoked by uid 550); 3 Jul 2019 08:53:32 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 7453 invoked from network); 3 Jul 2019 08:53:30 -0000 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=P4rv4pg79RqSNUXS6BGlrltkV4Fl4V+m59Hd3irOKTw=; b=buSVQ81E5/o6WB24fW0a9YRGqMEJ7iAetnyN6omxBn/FHKSJz48DoqnKHFfLDaonp9 0+19PT+ejMbPBHvOh8QJZh190bNxu+jf6TLXPVfekd4UUNKKawcbiaEp7fP4qEJ24t4+ NqglqwicjWyVr+8vW2q6sFurFPBUmyCBnj91ZLgfGdPOVf5xwXdenO+7BImf/TUAZS7+ JQUXUO+ZnXajhTm+4J3XCqu3YvGXCPoVpnS2TilaExkV6mAEUQVZTee7oFsuXY9TJy4D 9rVKm4MCd9C3d/u82xNf5RX+p1BUK3GAdgaH0d6n7nk1hQJQ/uEdUY8RZ+oXPlc4Vbcm nycw== X-Gm-Message-State: APjAAAUm+obh/Fef1hOwmkDwbtR/WQduF8/vzIrneyVqA4IJbM7J5tgJ wnvqpbUSDywhk/y6+2LDE4c= X-Google-Smtp-Source: APXvYqzgqKzWyVPgQSo7M8ZQYE9vAdFliEw/eNnWdTomx77jNRVEXM10skjX0mMDOnjNwAdD/IGVJw== X-Received: by 2002:a17:902:583:: with SMTP id f3mr40690160plf.137.1562143998855; Wed, 03 Jul 2019 01:53:18 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190517164342.GB23599@brightrain.aerifal.cx> Xref: news.gmane.org gmane.linux.lib.musl.general:14354 Archived-At: --dng5ueafcoz2or7x Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline On 2019-05-17, Rich Felker wrote: >On Fri, May 17, 2019 at 11:35:37PM +0800, Fangrui Song wrote: >> By default, if I specify --target=aarch64, AR=aarch64-ar is used, which is apparently not available. >> >> With this patch, I am able to build an aarch64 musl with: >> >> ../configure --target=aarch64 AR=llvm-ar RANLIB=true CC=clang CFLAGS=--target=aarch64-linux-musl LDFLAGS="-fuse-ld=lld -L/path/to/aarch64/libgcc.a/and/libgcc_eh.a" --enable-debug >> >> ASMSUBARCH is no longer in use as of commit 0f814a4e57e80d2512934820b878211e9d71c93e. >> >> You may also delete the following line >> >> test -z "$LIBCC" && tryldflag LIBCC -lcompiler_rt >> >> because compiler-rt (part of which is nearly a replacement of libgcc) is something like: >> >> /home/ray/llvm/Release/lib/clang/9.0.0/lib/linux/libclang_rt.builtins-x86_64.a >> >> not libcompiler_rt.a >> >> % clang -print-resource-dir >> /home/ray/llvm/Release/lib/clang/9.0.0 >> % clang -rtlib=compiler-rt -print-libgcc-file-name >> /home/ray/llvm/Release/lib/clang/9.0.0/lib/linux/libclang_rt.builtins-x86_64.a > >I think this was discussed before and there were suggestions for >improving the behavior overall. That might include removing >-lcompiler_rt search, but there may be cases where it makes sense >(maybe using gcc with libgcc intentionally replaced?) > >> BTW, I am not sure if libgcc_eh.a is needed. > >At one point, some archs' libgcc had a gratuitous dependency on >libgcc_eh due to soft division functions pulling in exception crap for >divide-by-zero. This is obviously wrong, but I felt it was outside the >scope of musl to try to fix it. Since libgcc_eh is an archive library, >including it in the link is a nop as long as nothing pulls in a >dependency on it, so it shouldn't hurt with non-broken libgcc. > >> From 1a9f27d0a311210829a021384eb36332bc7456d0 Mon Sep 17 00:00:00 2001 >> From: Fangrui Song >> Date: Fri, 17 May 2019 08:15:52 -0700 >> Subject: [PATCH] config.mak: add AR/RANLIB and delete ASMSUBARCH > >These are independent, unrelated changes and shouldn't be in a commit >together. > >> --- >> configure | 10 ++++------ >> 1 file changed, 4 insertions(+), 6 deletions(-) >> >> diff --git a/configure b/configure >> index 2123ddce..2c866955 100755 >> --- a/configure >> +++ b/configure >> @@ -172,6 +172,8 @@ case "$arg" in >> --host=*|--target=*) target=${arg#*=} ;; >> --build=*) build=${arg#*=} ;; >> -* ) echo "$0: unknown option $arg" ;; >> +AR=*) AR=${arg#*=} ;; >> +RANLIB=*) RANLIB=${arg#*=} ;; >> CC=*) CC=${arg#*=} ;; >> CFLAGS=*) CFLAGS=${arg#*=} ;; >> CPPFLAGS=*) CPPFLAGS=${arg#*=} ;; >> @@ -680,11 +682,6 @@ fi >> test "$SUBARCH" \ >> && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH" >> >> -case "$ARCH$SUBARCH" in >> -arm) ASMSUBARCH=el ;; >> -*) ASMSUBARCH=$SUBARCH ;; >> -esac >> - >> # >> # Some archs (powerpc) have different possible long double formats >> # that the compiler can be configured for. The logic for whether this >> @@ -728,9 +725,10 @@ cat << EOF >> # This version of config.mak was generated by: >> # $cmdline >> # Any changes made here will be lost if configure is re-run >> +AR = $AR >> +RANLIB = $RANLIB > >This completely breaks the behavior with AR and RANLIB not specified >explicitly, including a plain default ./configure command. They'll now >be blank rather than $(CROSS_COMPILE)-{ar,ranlib} evaluated at >make-time. Sorry, didn't notice that. New patch attached. With 2 local llvm/clang patches, I am able to build musl powerpc64le with the following command: ../configure --target=powerpc64le AR=~/llvm/Release/bin/llvm-ar RANLIB=true CC=~/llvm/Release/bin/clang CFLAGS='-target powerpc64le-linux -mlong-double-64' LDFLAGS=-fuse-ld=lld --enable-debug # "-linux" in "powerpc64le-linux" is important. # If -target powerpc64le is used instead, clang will invoke gcc instead of itself in the linker stage, which will not work. --dng5ueafcoz2or7x Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="musl.patch" >From 4415adea632ca0fee80e10b6cd73b590417a2266 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Thu, 27 Jun 2019 08:10:04 +0000 Subject: [PATCH] configure: make AR and RANLIB customizable --- Makefile | 2 -- configure | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index b46f8ca4..6842983b 100644 --- a/Makefile +++ b/Makefile @@ -51,8 +51,6 @@ CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS_AUTO) $(CFLAGS) LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS) -AR = $(CROSS_COMPILE)ar -RANLIB = $(CROSS_COMPILE)ranlib INSTALL = $(srcdir)/tools/install.sh ARCH_INCLUDES = $(wildcard $(srcdir)/arch/$(ARCH)/bits/*.h) diff --git a/configure b/configure index 60e0b1fc..86801281 100755 --- a/configure +++ b/configure @@ -172,6 +172,8 @@ case "$arg" in --host=*|--target=*) target=${arg#*=} ;; --build=*) build=${arg#*=} ;; -* ) echo "$0: unknown option $arg" ;; +AR=*) AR=${arg#*=} ;; +RANLIB=*) RANLIB=${arg#*=} ;; CC=*) CC=${arg#*=} ;; CFLAGS=*) CFLAGS=${arg#*=} ;; CPPFLAGS=*) CPPFLAGS=${arg#*=} ;; @@ -734,6 +736,8 @@ cat << EOF # This version of config.mak was generated by: # $cmdline # Any changes made here will be lost if configure is re-run +AR = ${AR:-\$(CROSS_COMPILE)ar} +RANLIB = ${RANLIB:-\$(CROSS_COMPILE)ranlib} ARCH = $ARCH SUBARCH = $SUBARCH ASMSUBARCH = $ASMSUBARCH -- 2.22.0 --dng5ueafcoz2or7x--