summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2021-08-23 19:33:18 +0200
committerHans de Graaff <graaff@gentoo.org>2021-11-14 10:15:17 +0100
commit2a348f36672c06a1075dc02a0ca852f7934fbdbf (patch)
tree036b085efb14955b574e279761c88cc7866252e4 /eclass/ruby-fakegem.eclass
parentdev-util/pkgcheck: x86 stable wrt bug #821835 (diff)
downloadgentoo-2a348f36672c06a1075dc02a0ca852f7934fbdbf.tar.gz
gentoo-2a348f36672c06a1075dc02a0ca852f7934fbdbf.tar.bz2
gentoo-2a348f36672c06a1075dc02a0ca852f7934fbdbf.zip
eclass/ruby-fakegem.eclass: set flags for compilation
Explicitly pass CC, CFLAGS and LDFLAGS when compiling ruby extensions. By default ruby re-uses the stored flags used when compiling ruby itself. This is intended to create a better chance of compatibility between extensions and ruby itself, and extensions do not need to bother with this themselves, but it does not match the expectations of a Gentoo system where each compile action should use the currently defined flags. We also cannot guarantee this compatibility in any case since toolchain packages may have been updated in the meantime. This change uses the current CC, CFLAGS and LDFLAGS, and adds -fPIC which ruby extensions need and which would otherwise be added by ruby. This combination is already used in some ebuilds without any reported issues. Signed-off-by: Hans de Graaff <graaff@gentoo.org>
Diffstat (limited to 'eclass/ruby-fakegem.eclass')
-rw-r--r--eclass/ruby-fakegem.eclass4
1 files changed, 2 insertions, 2 deletions
diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass
index 7f88c292e536..4b954615cac9 100644
--- a/eclass/ruby-fakegem.eclass
+++ b/eclass/ruby-fakegem.eclass
@@ -404,7 +404,7 @@ EOF
each_fakegem_configure() {
tc-export PKG_CONFIG
for extension in "${RUBY_FAKEGEM_EXTENSIONS[@]}" ; do
- ${RUBY} --disable=did_you_mean -C ${extension%/*} ${extension##*/} || die
+ CC=$(tc-getCC) ${RUBY} --disable=did_you_mean -C ${extension%/*} ${extension##*/} || die
done
}
@@ -441,7 +441,7 @@ all_fakegem_compile() {
# Compile extensions defined in RUBY_FAKEGEM_EXTENSIONS, if any.
each_fakegem_compile() {
for extension in "${RUBY_FAKEGEM_EXTENSIONS[@]}" ; do
- emake V=1 -C ${extension%/*}
+ emake V=1 -C ${extension%/*} CFLAGS="${CFLAGS} -fPIC" archflag="${LDFLAGS}"
mkdir -p "${RUBY_FAKEGEM_EXTENSION_LIBDIR%/}"
cp "${extension%/*}"/*$(get_modname) "${RUBY_FAKEGEM_EXTENSION_LIBDIR%/}/" || die "Copy of extension into ${RUBY_FAKEGEM_EXTENSION_LIBDIR} failed"
done