Permalink
Switch branches/tags
release/0.0.3 gub-release-lilypond-2.17.0-1 gub-release-lilypond-2.17.0-1-actual gub-release-lilypond-2.16.0-1 gub-release-lilypond-2.15.95-1 gub-release-lilypond-2.15.42-1 gub-release-lilypond-2.15.41-1 gub-release-lilypond-2.15.40-1 gub-release-lilypond-2.15.39-1 gub-release-lilypond-2.15.38-1 gub-release-lilypond-2.15.37-1 gub-release-lilypond-2.15.36-1 gub-release-lilypond-2.15.35-1 gub-release-lilypond-2.15.34-1 gub-release-lilypond-2.15.33-1 gub-release-lilypond-2.15.32-1 gub-release-lilypond-2.15.31-1 gub-release-lilypond-2.15.30-1 gub-release-lilypond-2.15.16-1 gub-release-lilypond-2.15.15-1 gub-release-lilypond-2.15.14-1 gub-release-lilypond-2.15.13-1 gub-release-lilypond-2.15.12-1 gub-release-lilypond-2.15.11-1 gub-release-lilypond-2.15.10-1 gub-release-lilypond-2.15.9-1 gub-release-lilypond-2.15.8-1 gub-release-lilypond-2.15.7-1 gub-release-lilypond-2.15.6-1 gub-release-lilypond-2.15.5-1 gub-release-lilypond-2.15.4-1 gub-release-lilypond-2.15.3-1 gub-release-lilypond-2.15.2-1 gub-release-lilypond-2.15.1-1 gub-release-lilypond-2.15.0-1 gub-release-lilypond-2.14.2-1 gub-release-lilypond-2.14.1-1 gub-release-lilypond-2.14.0-1 gub-release-lilypond-2.13.63-1 gub-release-lilypond-2.13.62-1 gub-release-lilypond-2.13.61-1 gub-release-lilypond-2.13.60-1 gub-release-lilypond-2.13.59-1 gub-release-lilypond-2.13.58-1 gub-release-lilypond-2.13.57-1 gub-release-lilypond-2.13.56-1 gub-release-lilypond-2.13.55-1 gub-release-lilypond-2.13.54-1 gub-release-lilypond-2.13.53-1 gub-release-lilypond-2.13.52-1 gub-release-lilypond-2.13.51-1 gub-release-lilypond-2.13.50-1 gub-release-lilypond-2.13.49-1 gub-release-lilypond-2.13.48-1 gub-release-lilypond-2.13.47-1 gub-release-lilypond-2.13.46-1 gub-release-lilypond-2.13.45-1 gub-release-lilypond-2.13.44-1 gub-release-lilypond-2.13.43-1 gub-release-lilypond-2.13.42-1 gub-release-lilypond-2.13.41-1 gub-release-lilypond-2.13.40-1 gub-release-lilypond-2.13.39-1 gub-release-lilypond-2.13.38-1 gub-release-lilypond-2.13.37-1 gub-release-lilypond-2.13.36-1 gub-release-lilypond-2.13.35-1 gub-release-lilypond-2.13.34-1 gub-release-lilypond-2.13.33-1 gub-release-lilypond-2.13.32-1 gub-release-lilypond-2.13.31-1 gub-release-lilypond-2.13.30-1 gub-release-lilypond-2.13.29-1 gub-release-lilypond-2.13.28-1 gub-release-lilypond-2.13.27-2 gub-release-lilypond-2.13.27-1 gub-release-lilypond-2.13.26-1 gub-release-lilypond-2.13.25-1 gub-release-lilypond-2.13.24-1 gub-release-lilypond-2.13.23-1 gub-release-lilypond-2.13.22-1 gub-release-lilypond-2.13.21-1 gub-release-lilypond-2.13.20-1 gub-release-lilypond-2.13.19-1 gub-release-lilypond-2.13.18-1 gub-release-lilypond-2.13.17-1 gub-release-lilypond-2.13.16-1 gub-release-lilypond-2.13.15-1 gub-release-lilypond-2.13.14-1 gub-release-lilypond-2.13.13-1 gub-release-lilypond-2.13.12-1 gub-release-lilypond-2.13.11-1 gub-release-lilypond-2.13.10-1 gub-release-lilypond-2.13.9-1 gub-release-lilypond-2.13.8-1 gub-release-lilypond-2.13.7-1 gub-release-lilypond-2.13.7-0 gub-release-lilypond-2.13.6-1 gub-release-lilypond-2.13.5-0 gub-release-lilypond-2.13.4-1
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
130 lines (121 sloc) 5.17 KB
import os
#
from gub import context
from gub import cross
from gub import misc
from gub import repository
from gub import target
# Hmm? TARGET_CFLAGS=-O --> target.py
'''
URG glibc-2.3 has this beauty
in sysdeps/unix/sysv/linux/configure.in
# The Linux kernel headers can be found in
# /lib/modules/$(uname -r)/build/include
# Check whether this directory is available.
if test -z "$sysheaders" &&
test "x$cross_compiling" = xno &&
test -d /lib/modules/`uname -r`/build/include; then
sysheaders="/lib/modules/`uname -r`/build/include"
ccheaders=`$CC -print-file-name=include`
dnl We do not have to use -nostdinc. We just want one more directory
dnl to be used.
SYSINCLUDES="-I $sysheaders"
fi
Which makes, that when we are not cross compiling, eg: target/linux-64
on a x86_64, we will try to include /lib/modules/.../build/include,
and LD_PRELOAD will make us barf.
We should be able to silence this using --with-headers. So,
while --with-headers adds no new include path, it tells configure
to *not* look in /.
'''
# FIXME: also cross.
# cross/gcc can only depend on glibc-core if glibc-core is also a
# cross package. With glibc as cross package, all packages
# automagically depend on it, which is nice.
# See cross.py:set_cross_dependencies ()
class Glibc (target.AutoBuild, cross.AutoBuild):
source = 'http://lilypond.org/downloads/gub-sources/glibc/glibc-2.3-20070416.tar.bz2'
patches = [
'glibc-2.3-powerpc-initfini.patch',
'glibc-2.3-powerpc-socket-weakalias.patch',
'glibc-2.3-powerpc-lround-weakalias.patch',
'glibc-2.3-nptl-no-versioning.patch',
'glibc-2.3-slibdir.patch',
'glibc-2.3-assert-dl_next_tls_modid.patch',
'glibc-2.3-binutils-2.19-i386.patch',
'glibc-2.3-binutils-version-check.patch',
'glibc-2.3-sysdeps-general-initfini.patch',
'glibc-2.3-sysdeps-i386-Makefile.patch',
'glibc-2.3-i386-crti-crtn.patch',
'glibc-2.3-misc-sys-cdefs-inline.patch',
'glibc-2.3-elf-Makefile.patch',
'glibc-2.3-linuxthreads-crti-crtn.patch',
'glibc-2.3-powerpc-sysdeps-Makefile.patch',
]
dependencies = ['cross/gcc', 'glibc-core', 'tools::bison', 'tools::gzip', 'tools::perl', 'linux-headers']
configure_flags = (target.AutoBuild.configure_flags + misc.join_lines ('''
--disable-profile
--disable-debug
--without-cvs
--without-gd
--with-headers=%(system_prefix)s/include
''')
+ '%(enable_add_ons)s')
make_flags = ' SHELL=/bin/bash'
install_flags = (target.AutoBuild.install_flags
+ ' install_root=%(install_root)s'
# glibc-2.3.6' Makerules file has a cross-compiling
# check that changes symlink install behaviour. ONLY
# if $(cross_compiling)==no, an extra
# `install-symbolic-link' target is created upon with
# `install' is made to depend. This means we do not
# get symlinks with install-lib-all when it so happens
# that build_architecture == target_architecture. Try
# to cater for both here: make the symlink as well as
# append to the symlink.list file.
+ ''' make-shlib-link='ln -sf $(<F) $@; echo $(<F) $@ >> $(common-objpfx)elf/symlink.list' ''')
configure_command = 'BUILD_CC=gcc ' + target.AutoBuild.configure_command
config_cache_overrides = (target.AutoBuild.config_cache_overrides + '''
use_default_libc_cv_slibdir=%(prefix_dir)s/slib
libc_cv_rootsbindir=%(prefix_dir)s/sbin
''')
def get_conflict_dict (self):
return {'': ['glibc-core'], 'devel': ['glibc-core'], 'doc': ['glibc-core'], 'runtime': ['glibc-core']}
def patch (self):
target.AutoBuild.patch (self)
self.system('''
rm %(srcdir)s/sysdeps/i386/i686/memcmp.S
''')
def get_add_ons (self):
return ('linuxthreads', 'nptl')
@context.subst_method
def enable_add_ons (self):
add_ons = ''
for i in self.get_add_ons ():
add_ons += ' --enable-add-ons=' + i
return add_ons
def linuxthreads (self):
return repository.get_repository_proxy (self.settings.downloads,
self.expand ('http://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-%(version)s.tar.bz2&strip_components=0'))
def download (self):
target.AutoBuild.download (self)
if self.version () == '2.3.6':
self.linuxthreads ().download ()
def untar (self):
target.AutoBuild.untar (self)
if self.version () == '2.3.6':
self.linuxthreads ().update_workdir (self.expand ('%(srcdir)s/urg-do-not-mkdir-or-rm-me'))
self.system ('mv %(srcdir)s/urg-do-not-mkdir-or-rm-me/* %(srcdir)s')
# Disable librestrict.so, as it causes crashes on Fedora 9 and 10.
def LD_PRELOAD (self):
return ''
class Glibc__linux__ppc (Glibc):
patches = Glibc.patches + [
'glibc-2.3-linux-ppc-sysdeps-generic-strtol_l.patch',
]
class Glibc__linux__mipsel (Glibc):
patches = Glibc.patches + [
'glibc-2.3-mips-syscall.patch',
]
def get_add_ons (self):
return ('linuxthreads',)