From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by sourceware.org (Postfix) with ESMTPS id 912263858021 for ; Tue, 15 Mar 2022 08:46:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 912263858021 Received: by mail-wm1-x32f.google.com with SMTP id m42-20020a05600c3b2a00b00382ab337e14so955331wms.3 for ; Tue, 15 Mar 2022 01:46:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NTB84BMeOisnCx6f1m3pPmIhZftjHAkVmWl7rvQE27c=; b=ws0zu8nwY8dPPPuRMw3JXZ5dYi3kXKuM6xSAXuwy0tVVQf/jdeaCHio6VDZxTKybby ZnpMyEHB5NQSMKVufWfDfe2rbRjpKxEMBlEyEG5090QUsPWshoSTVNPif+BQpjoyYfaE f8ovSt+EjxKlosnqi0ZVHLoclYnprYCIFIso8wQOaYSj8WneD2GyiqtfZTObPzyoStXz S6nlaJvXSqI6WkC9+RE/uDzu2vpYYyipjZJwiIDgxhEWmTXTyAyMBlG5I3SF5Tszr3X+ SN8uzhxwZhfGsJOlTsRrQ+ahyYlRKSQipnwEDpqzarrTEyVdz4vtW1PA2rWVCw0gSWJC OfRw== X-Gm-Message-State: AOAM533COIRvsW073ocWkmrPj/YO83Ed/ccsP8IjUZJybp0O7N+HpbKZ xsOKL0td8ZVWMb4n5rAltf7smDE9JEAOvE/aOcw= X-Google-Smtp-Source: ABdhPJwVuyhFdH8Hdevod45rHnydSOQrFiJAj98gN7pN7us+O2wDucmi2vE9WumKzI6SmBQDQjhGWD/aFJPiWCpVprM= X-Received: by 2002:a05:600c:4fc7:b0:389:ec8c:b544 with SMTP id o7-20020a05600c4fc700b00389ec8cb544mr2475477wmq.202.1647333981054; Tue, 15 Mar 2022 01:46:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jonathan Wakely Date: Tue, 15 Mar 2022 08:46:09 +0000 Message-ID: Subject: Re: Compile GCC using only tools isolated from host environment To: Benjamin Lovy Cc: gcc-help X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Mar 2022 08:46:24 -0000 On Mon, 14 Mar 2022, 22:44 Benjamin Lovy, wrote: > Hello, > > I am attempting to build GCC 11.2.0 in an isolated environment. First, I > grabbed the Linux headers: > > make headers_install \ > ARCH=x86_64 \ > INSTALL_HDR_PATH=/bootstrap/usr > > Then, I built binutils: > > mkdir binutils-build && \ > cd binutils-build && > /build/binutils-2.38/configure \ > --prefix=/bootstrap \ > --with-sysroot=/bootstrap \ > --disable-nls \ > --disable-werror && \ > make -j16 && \ > make install > > Then, I built GCC using the host toolchain: > > mkdir /build/gcc-build && \ > cd gcc-build && > /build/gcc-11.2.0/configure \ > --prefix=/bootstrap/ \ > --host=x86_64-pc-linux-gnu \ > --enable-languages=c,c++ \ > --disable-bootstrap \ > --disable-decimal-float \ > --disable-fixed-point \ > --disable-libatomic \ > --disable-libgomp \ > --disable-libitm \ > --disable-libmpx \ > --disable-libquadmath \ > --disable-libsanitizer \ > --disable-libssp \ > --disable-libvtv \ > --disable-lto \ > --disable-multilib \ > --disable-nls && \ > make -j16 && \ > make install > > Then, I built glibc using this GCC: > > mkdir glibc-build && \ > cd glibc-build && \ > /build/glibc-2.34/configure \ > CC=/bootstrap/bin/gcc \ > CFLAGS="-fno-stack-protector -O2" \ > CPPFLAGS="-U_FORTIFY_SOURCE" \ > --prefix=/bootstrap \ > --with-sysroot=/bootstrap \ > --with-headers=/bootstrap/usr/include &&\ > make -j16 && \ > make install > > This all works fine. I then build the following software: > > * GMP 6.21 > * MPFR 4.10 > * MPC 1.21 > * tar 1.34 > * bash 5.16 > * coreutils 9.0 > * curl 7.82 > * zlib 1.2.11 > * gzip 1.11 > * sed 4.8 > * grep 2.28 > * gawk 5.11 > * make 4.3 > * xz 5.25 > > I use invocations similar to this for each entry on that list: > > ./configure \ > CC=/bootstrap/bin/gcc \ > CFLAGS="-Wl,-dynamic-linker=/bootstrap/lib/ld-linux-x86-64.so.2 > -Wl,-rpath,/bootstrap/lib -I/bootstrap/include" \ > --with-sysroot=/bootstrap \ > --prefix=/bootstrap && \ > make -j16 && \ > make check && \ > make install > > Now, I would like to build a fresh GCC using the previously build GCC, this > glib, and the GMP/MPC/MPFR libraries I just built: > I recommend you don't do that. Use the contrib/download_prerequisites script instead, see https://gcc.gnu.org/wiki/InstallingGCC This doesn't solve your header path issue, but it's much simpler and cleaner anyway.