From patchwork Thu Sep 16 09:07:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tobias Burnus X-Patchwork-Id: 45070 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E6A59385781A for ; Thu, 16 Sep 2021 09:07:58 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id A1552385841B for ; Thu, 16 Sep 2021 09:07:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A1552385841B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: Rm9brSEZtdEbuRpdizA8XN+AZb7vAS0BHDSdO6yM1+OSGWe0FMtgREDvIpihPVajtvTPkcNXHZ 9+aPcD7qoNBV0JIa4vfX3/Mmyk5+KzdWkuKbLMbNC0qdMl4nDvj+kXqNhRNBTH5+K6sB02MC09 W+6VL4sII9LRuMQaerGpWKrME+wkKHFJkQyL+CsmLA78cNBnf4a9NK9D//CoCzj4FS4Tb7DZ4C eEF3w1He97wITNmAgfjGiQpPLZAlu2H1dp0kuWlwiHwxvN6wU1XB1SQGDtJcG3cc1ioAkY2xpu EgNiTVIT5Bq6lrhvwBqJhkwL X-IronPort-AV: E=Sophos;i="5.85,298,1624348800"; d="diff'?scan'208";a="65932368" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 16 Sep 2021 01:07:31 -0800 IronPort-SDR: Sc8SL/e+s0yvWYSQrDOXIIXTQ1bNg2dmet5vNtzSM7PbOiIrXPUiF2I3zFcm0UwBf/h6v18CcJ tO3NCkjSCNpi2kCNO6wWp0kbqV4kNInmH3pEhFRTvZhI/+mimOvBFLnSHSontBKBd1HX3ZRwBP PbjBKsuBrZUjgyTTiFq1hQ6GlIhPtInJuNxiAofnnMTWixfRs2hSwtOCAjrzf0+70akJwBaSrA HuhLZ78zlV45j2LiQZ5gakdFJdk68APtBNxvuRZkqlxWxUZONdY61+6pUZqBmKGTaV9M8rg9+W wRo= To: gcc-patches , David Edelsohn , Segher Boessenkool , "Bill Schmidt <" From: Tobias Burnus Subject: [Patch] PowerPC: Fix rs6000-gen-builtins with build != host [PR102353] Message-ID: <6b051c9b-f538-35fd-2bd5-1555f8ce625f@codesourcery.com> Date: Thu, 16 Sep 2021 11:07:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 Content-Language: en-US X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-05.mgc.mentorg.com (139.181.222.5) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sandra Loosemore Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" As mentioned in https://gcc.gnu.org/PR102353 and in the patch, rs6000-gen-builtins was build to be run on "host" – and then linked and on on "build". That caused bootstrap fails at link time. The patch now does the same as Makefile.in for 'gen*', i.e. build under build/ (using the Makefile.in rule), the linking is already the same as for 'build/gen%' and for running, it runs it with valgrind if configured (as gen* do). additionally, I added the exe extension var, in case it is needed, following the gen* rules. Tested with a x86_64-gnu-linux (build) → powerpc64le-linux-gnu (host, target) build. OK? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 PowerPC: Fix rs6000-gen-builtins with build != host [PR102353] This mimics what the main Makefile.in does: compile the generator files under build (with Makefile.in's 'build/%.o' rule for compilation). It also adds $(RUN_GEN) to optionally run it with valgrind and the $(build_exeext) suffix. Before, the .o files were compiled with $(COMPILE), causing link error with $(LINKER_FOR_BUILD) for build != host. gcc/ PR target/102353 * config/rs6000/t-rs6000 (build/rs6000-gen-builtins.o, build/rbtree.o): Added 'build/' to target, use build/%.o rule. (build/rs6000-gen-builtins$(build_exeext)): Add 'build/' and '$(build_exeext)' to target and 'build/' for the *.o files. (rs6000-builtins.c): Update for those changes; run rs6000-gen-builtins with $(RUN_GEN). diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000 index 92766d8..7752e16 100644 --- a/gcc/config/rs6000/t-rs6000 +++ b/gcc/config/rs6000/t-rs6000 @@ -44,15 +44,10 @@ rs6000-logue.o: $(srcdir)/config/rs6000/rs6000-logue.c $(COMPILE) $< $(POSTCOMPILE) -rs6000-gen-builtins.o: $(srcdir)/config/rs6000/rs6000-gen-builtins.c - $(COMPILE) $< - $(POSTCOMPILE) - -rbtree.o: $(srcdir)/config/rs6000/rbtree.c - $(COMPILE) $< - $(POSTCOMPILE) +build/rs6000-gen-builtins.o: $(srcdir)/config/rs6000/rs6000-gen-builtins.c +build/rbtree.o: $(srcdir)/config/rs6000/rbtree.c -rs6000-gen-builtins: rs6000-gen-builtins.o rbtree.o +build/rs6000-gen-builtins$(build_exeext): build/rs6000-gen-builtins.o build/rbtree.o $(BUILD_LIBDEPS) $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \ $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS) @@ -62,10 +57,11 @@ rs6000-gen-builtins: rs6000-gen-builtins.o rbtree.o # # For now, the header files depend on rs6000-builtins.c, which avoids # races because the .c file is closed last in rs6000-gen-builtins.c. -rs6000-builtins.c: rs6000-gen-builtins \ +rs6000-builtins.c: build/rs6000-gen-builtins$(build_exeext) \ $(srcdir)/config/rs6000/rs6000-builtin-new.def \ $(srcdir)/config/rs6000/rs6000-overload.def - ./rs6000-gen-builtins $(srcdir)/config/rs6000/rs6000-builtin-new.def \ + $(RUN_GEN) ./build/rs6000-gen-builtins$(build_exeext) \ + $(srcdir)/config/rs6000/rs6000-builtin-new.def \ $(srcdir)/config/rs6000/rs6000-overload.def rs6000-builtins.h \ rs6000-builtins.c rs6000-vecdefines.h