|
75 | 75 | ruby_base_version = proj.ruby_version.gsub(/(\d+)\.(\d+)\.(\d+)/, '\1.\2.0')
|
76 | 76 | proj.setting(:gem_home, File.join(proj.libdir, 'ruby', 'gems', ruby_base_version))
|
77 | 77 |
|
78 |
| -# Define default CFLAGS and LDFLAGS for most platforms, and then |
79 |
| -# tweak or adjust them as needed. |
80 |
| -proj.setting(:cppflags, "-I#{proj.includedir} -I/opt/pl-build-tools/include") |
81 |
| -proj.setting(:cflags, "#{proj.cppflags}") |
82 |
| -proj.setting(:ldflags, "-L#{proj.libdir} -L/opt/pl-build-tools/lib -Wl,-rpath=#{proj.libdir}") |
83 |
| - |
84 |
| -# Platform specific overrides or settings, which may override the defaults |
85 |
| - |
86 |
| -# Harden Linux ELF binaries by compiling with PIE (Position Independent Executables) support, |
87 |
| -# stack canary and full RELRO. |
88 |
| -# We only do this on platforms that use their default OS toolchain since pl-gcc versions |
89 |
| -# are too old to support these flags. |
90 |
| -if (platform.is_sles? && platform.os_version.to_i >= 15) || (platform.is_el? && platform.os_version.to_i >= 8) || platform.is_debian? || (platform.is_ubuntu? && platform.os_version.to_i >= 20) || platform.is_fedora? |
91 |
| - proj.setting(:cppflags, "-I#{proj.includedir} -D_FORTIFY_SOURCE=2") |
92 |
| - proj.setting(:cflags, '-fstack-protector-strong -fno-plt -O2') |
93 |
| - proj.setting(:ldflags, "-L#{proj.libdir} -Wl,-rpath=#{proj.libdir},-z,relro,-z,now") |
94 |
| -end |
| 78 | +# Load default compiler settings |
| 79 | +instance_eval File.read(File.join(__dir__, '_shared-compiler-settings.rb')) |
95 | 80 |
|
96 | 81 | # Required to build ruby
|
97 | 82 | proj.component 'libffi'
|
|
0 commit comments