version = "16.1.0" revision = 1 description = "GNU GCC cross-compiler targeting the system triple" license = "GPL-3.0-or-later" url = "https://gcc.gnu.org/" source = tarball( url=f"https://ftp.gnu.org/gnu/gcc/gcc-{version}/gcc-{version}.tar.xz", sha256="50efb4d94c3397aff3b0d61a5abd748b4dd31d9d3f2ab7be05b171d36a510f79", ) host_deps = ["binutils", "gcc-bootstrap"] deps = [profile["libc"], "linux-headers"] def configure(self): self.run( self.source_dir / "configure", f"--target={self.triple}", f"--prefix={self.prefix}", f"--with-sysroot={self.sysroot}", f"--with-build-sysroot={self.sysroot}", f"--with-gxx-include-dir={self.sysroot}{self.profile['includedir']}/c++/{version}", "--enable-languages=c,c++,lto", "--disable-bootstrap", "--enable-default-pie", "--enable-default-ssp", "--enable-lto", "--enable-threads=posix", "--enable-tls", "--enable-libstdcxx-time", "--enable-checking=release", "--enable-cet=auto", "--enable-linker-build-id", "--disable-nls", "--disable-multilib", "--disable-fixed-point", "--disable-werror", "--disable-libsanitizer", "--disable-symvers", env={ "CFLAGS": self.profile["host_cflags"], "CXXFLAGS": self.profile["host_cxxflags"], "LDFLAGS": self.profile["host_ldflags"], }, ) def build(self): self.run("make", f"-j{self.jobs}") def install(self): self.run("make", "install-strip", env={"DESTDIR": str(self.dest_dir)}) # Drop libtool archives. self.run("find", self.dest_dir, "-name", "*.la", "-delete")