Files
chromebrew/packages/binutils.rb
github-actions[bot] e85da25bf9 Post GLIBC upgrade updates WIP (#11807)
* build gcc 15.1 RC

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add rust build dep to gcc.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* back out rust

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add conflicts_ok.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to gcc15

* Add built packages for linux/amd64 to gcc15

* Add built packages for linux/arm/v7 to gcc15

* remove gcc_lib dep from gcc_build.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add back rust.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add more binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* cleanup

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update hashes

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* add no_shrink to llvm20_build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* alphabetize

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Testing changes

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* more gcc build adjustments

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* rust adjustments

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* binutils, gcc_build adjustments

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* add binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* add binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust crew to handle adding hashes for remote binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add binaries, adjust getrealdeps

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Revert BASH_ENV changes

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add some gdb builds

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add more arm binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add arm binaries for gdb

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust rustflags.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update rust package, add rust buildsystem, add zellij

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update packages/gcc_dev.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_dev.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_lib.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_lib.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/libssp.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/libssp.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/libssp.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/libssp.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Add CREW_GCC_VER case binaries for binutils.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Move valid buildsystems list into const.rb

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add zellij to packages.yaml.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add gcc14 build hashes for gdb

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add glibc 2.37 compat

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update gcc 15.1 RC version to 15.1.0-RC-20250423.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add update gcc_build builds

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update uutils_coreutils build to use rust buildsystem

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update uutils package

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* rust fixes...

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to gcc15

* Add built packages for linux/amd64 to gcc15

* Add built packages for linux/arm/v7 to gcc15

* Add final gcc15.1 version

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add gcc 15.1 binaries.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update packages/gcc_build.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_build.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/libssp.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/libssp.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_lib.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_lib.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_dev.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update packages/gcc_dev.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update crew

* Update rust for new glibc.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Remove glibc versioning from gcc builds, adjust crew to add CREW_GLIBC_PREFIX to existing rpaths during installs.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update bin/crew

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Fix crew lint garbage.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* rejigger gcc build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust gcc build args.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* sync with master

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add WIP gcc_build package.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* iterate on gcc_build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust gcc_build...

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Rationalize env variable names.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* lint

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* More gcc_build adjustments.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust fixup to not break existing rpaths.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update gcc_build.rb for new Chromebrew glibc.

* Sync  gcc_build.rb with master.

* Sync binutils.rb with master.

* remove core

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add shell replacement to filefix.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* update rubygems

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update crew_profile_base to 0.0.27

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Update crew_profile_base again.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Always run filefix in autotools buildsystem.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add packages, make adjustments.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* cleanup binutils

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust fixup and gcc_build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: satmandu <satmandu@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ed Reel <edreel@gmail.com>
2025-05-21 18:00:34 +00:00

117 lines
3.9 KiB
Ruby

# Adapted in part from Arch Linux binutils PKGBUILD at:
# https://gitlab.archlinux.org/archlinux/packaging/packages/binutils/-/blob/main/PKGBUILD
require 'English'
require 'package'
class Binutils < Package
description 'The GNU Binutils are a collection of binary tools.'
homepage 'https://www.gnu.org/software/binutils/'
version "2.44-#{CREW_GCC_VER}"
license 'GPL-3+'
compatibility 'all'
source_url "https://sourceware.org/pub/binutils/releases/binutils-#{version.split('-').first}.tar.zst"
source_sha256 '79cb120b39a195ad588cd354aed886249bfab36c808e746b30208d15271cc95c'
binary_compression 'tar.zst'
binary_sha256({
aarch64: '7a245c3f45a525d89204c94b6c0426be522eda1c98e703c46fb89c57a7ac5a66',
armv7l: '7a245c3f45a525d89204c94b6c0426be522eda1c98e703c46fb89c57a7ac5a66',
i686: '191651baffb2152ed544edf3747556ef7f9c4177f3ccecae93c783578b6488f5',
x86_64: 'c93ee7fa7cfc31fdb4a30438fa051ffefab18912fd6a35398dda741bebe25e32'
})
depends_on 'elfutils' # R
depends_on 'flex' # R
depends_on 'gcc_lib' # R
depends_on 'glibc' # R
depends_on 'zlib' # R
depends_on 'zstd' # R
def self.prebuild
FileUtils.rm_f "#{CREW_LIB_PREFIX}/libiberty.a"
end
def self.patch
system 'filefix'
system "sed -i 's,scriptdir = $(tooldir)/lib,scriptdir = $(tooldir)/#{ARCH_LIB},g' ld/Makefile.am"
Dir.chdir 'ld' do
system 'aclocal && automake'
end
system "sed -i '/^development=/s/true/false/' bfd/development.sh"
end
def self.build
# gprofng is broken on i686 in binutils 2.40
# https://sourceware.org/bugzilla/show_bug.cgi?id=30006
Dir.mkdir 'build'
Dir.chdir 'build' do
system "../configure #{CREW_CONFIGURE_OPTIONS} \
--disable-bootstrap \
--disable-gdb \
--disable-gdbserver \
--disable-maintainer-mode \
--enable-64-bit-bfd \
--enable-colored-disassembly \
--enable-gold \
--enable-install-libiberty \
--enable-ld \
--enable-ld=default \
--enable-lto \
--enable-plugins \
--enable-relro \
--enable-shared \
--enable-threads \
--enable-vtable-verify \
#{ARCH == 'i686' || ARCH == 'x86_64' ? '--disable-gprofng' : ''} \
--with-bugurl=https://github.com/chromebrew/chromebrew/issues/new \
--with-lib-path=#{CREW_LIB_PREFIX} \
--with-pic \
--with-pkgversion=Chromebrew \
--with-system-zlib"
system 'make configure-host'
system "make prefix=#{CREW_PREFIX} tooldir=#{CREW_PREFIX}"
system 'make -j1' if $CHILD_STATUS.exitstatus != 0
end
end
def self.check
Dir.chdir 'build' do
system 'make -O CFLAGS_FOR_TARGET="-O2 -g" \
CXXFLAGS="-O2 -no-pie -fno-PIC" \
CFLAGS="-O2 -no-pie" \
LDFLAGS="" \
check || true'
end
end
def self.install
Dir.chdir 'build' do
system 'make', "DESTDIR=#{CREW_DEST_DIR}", "prefix=#{CREW_PREFIX}",
"tooldir=#{CREW_PREFIX}", 'install'
# install PIC version of libiberty
FileUtils.install 'libiberty/pic/libiberty.a', "#{CREW_DEST_LIB_PREFIX}/", mode: 0o644
# No shared linking to these files outside binutils
FileUtils.rm_f "#{CREW_DEST_LIB_PREFIX}/libbfd.so"
FileUtils.rm_f "#{CREW_DEST_LIB_PREFIX}/libopcodes.so"
File.write "#{CREW_DEST_LIB_PREFIX}/libbfd.so", <<~LIB_BFD_EOF
/* GNU ld script */
INPUT( #{CREW_LIB_PREFIX}/libbfd.a -lsframe -liberty -lz -lzstd -ldl )
LIB_BFD_EOF
File.write "#{CREW_DEST_LIB_PREFIX}/libopcodes.so", <<~LIB_OPCODES_EOF
/* GNU ld script */
INPUT( #{CREW_LIB_PREFIX}/libopcodes.a -lbfd )
LIB_OPCODES_EOF
# Needed for gdb.
@oldlibs = %w[bfd opcodes]
@oldlibs.each do |oldlib|
FileUtils.ln_sf "#{CREW_LIB_PREFIX}/lib#{oldlib}-#{@_ver}.so",
"#{CREW_DEST_LIB_PREFIX}/lib#{oldlib}-2.39.50.so"
end
end
end
end