summaryrefslogtreecommitdiff
path: root/lang/ruby24-base/hacks.mk
diff options
context:
space:
mode:
Diffstat (limited to 'lang/ruby24-base/hacks.mk')
-rw-r--r--lang/ruby24-base/hacks.mk37
1 files changed, 37 insertions, 0 deletions
diff --git a/lang/ruby24-base/hacks.mk b/lang/ruby24-base/hacks.mk
new file mode 100644
index 00000000000..b471938d84d
--- /dev/null
+++ b/lang/ruby24-base/hacks.mk
@@ -0,0 +1,37 @@
+# $NetBSD: hacks.mk,v 1.1 2017/06/18 13:45:11 taca Exp $
+
+.if !defined(RUBY24_BASE_HACKS_MK)
+RUBY24_BASE_HACKS_MK= defined
+
+.include "../../mk/compiler.mk"
+
+### [ Sun Jun 5 10:05:39 CEST 2005 : seb ]
+### On NetBSD/sparc64, gcc optimisation, at least for version 3.3.3,
+### produces segmentation faulting miniruby binary.
+### Also note that `-O' level optimisation produces a miniruby
+### binary that loops while running the installation scripts.
+###
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-sparc64)
+. if !empty(CC_VERSION:Mgcc-3.3.*)
+PKG_HACKS+= optimisation
+BUILDLINK_TRANSFORM+= rm:-O[0-9]*
+. endif
+### ruby193 binary built on NetBSD/sparc64 with gcc 4.5.1 and the default -O2
+### dumps core during generating RDocs.
+### Using -O1 works around.
+. if !empty(CC_VERSION:Mgcc-4.5.*)
+PKG_HACKS+= optimisation
+BUILDLINK_TRANSFORM+= opt:-O2:-O1
+. endif
+.endif
+
+# On NetBSD/sh3el 6.0, the default -Os causes an error on compiling node.c:
+# {standard input}: Assembler messages: {standard input}:1458: \
+# Error: pcrel too far
+# and -O1 works around.
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-sh3*) && !empty(CC_VERSION:Mgcc-4.5.*)
+PKG_HACKS+= optimisation
+BUILDLINK_TRANSFORM+= opt:-Os:-O1 rm:-freorder-blocks
+.endif
+
+.endif # RUBY24_BASE_HACKS_MK