From d315dcc6aa336c1232adde9336b819097e8e7a15 Mon Sep 17 00:00:00 2001 From: skyamgarp <130442619+skyamgarp@users.noreply.github.com> Date: Tue, 6 Aug 2024 20:34:08 +0530 Subject: [PATCH] (PA-6383) Enable PIE for RHEL,Ubuntu and Debian (PA-6383) Exclude ppc64 architecture (PA-6383) Fix Spaces (PA-6383) Exclude ppc64 arch --- configs/components/_base-ruby.rb | 8 ++++++++ configs/components/augeas.rb | 7 ++++++- configs/components/ruby-2.7.8.rb | 7 ++++++- configs/components/ruby-3.2.5.rb | 7 ++++++- configs/components/runtime-bolt.rb | 7 ++++++- configs/projects/_shared-agent-settings.rb | 8 +++++++- 6 files changed, 39 insertions(+), 5 deletions(-) diff --git a/configs/components/_base-ruby.rb b/configs/components/_base-ruby.rb index 1f9cd82dd..a297a9e4a 100644 --- a/configs/components/_base-ruby.rb +++ b/configs/components/_base-ruby.rb @@ -76,6 +76,14 @@ elsif platform.architecture == 'arm64' && platform.os_version.to_i >= 13 pkg.environment 'CC', 'clang' end +elsif((platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i >= 8 && platform.architecture !~ /ppc64/) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 20) || + platform.is_fedora? + ) + pkg.environment 'LDFLAGS', settings[:ldflags] + pkg.environment 'optflags', settings[:cflags] end #################### diff --git a/configs/components/augeas.rb b/configs/components/augeas.rb index 72d611ed4..c35f164fc 100644 --- a/configs/components/augeas.rb +++ b/configs/components/augeas.rb @@ -119,7 +119,12 @@ end end - if platform.name =~ /sles-15|el-8|debian-10/ || platform.is_fedora? + if((platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i >= 8 && platform.architecture !~ /ppc64/) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 20) || + platform.is_fedora? + ) pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CPPFLAGS', settings[:cppflags] pkg.environment "LDFLAGS", settings[:ldflags] diff --git a/configs/components/ruby-2.7.8.rb b/configs/components/ruby-2.7.8.rb index 5346e3988..3eeefa270 100644 --- a/configs/components/ruby-2.7.8.rb +++ b/configs/components/ruby-2.7.8.rb @@ -100,7 +100,12 @@ special_flags = " --prefix=#{ruby_dir} --with-opt-dir=#{settings[:prefix]} " - if platform.name =~ /sles-15|el-8|debian-10/ + if((platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i >= 8 && platform.architecture !~ /ppc64/) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 20) || + platform.is_fedora? + ) special_flags += " CFLAGS='#{settings[:cflags]}' LDFLAGS='#{settings[:ldflags]}' CPPFLAGS='#{settings[:cppflags]}' " end diff --git a/configs/components/ruby-3.2.5.rb b/configs/components/ruby-3.2.5.rb index 2ddfd6dfa..24a684126 100644 --- a/configs/components/ruby-3.2.5.rb +++ b/configs/components/ruby-3.2.5.rb @@ -93,7 +93,12 @@ special_flags = " --prefix=#{ruby_dir} --with-opt-dir=#{settings[:prefix]} " - if platform.name =~ /sles-15|el-8|debian-10/ + if((platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i >= 8 && platform.architecture !~ /ppc64/) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 20) || + platform.is_fedora? + ) special_flags += " CFLAGS='#{settings[:cflags]}' LDFLAGS='#{settings[:ldflags]}' CPPFLAGS='#{settings[:cppflags]}' " end diff --git a/configs/components/runtime-bolt.rb b/configs/components/runtime-bolt.rb index cbfaa5f9a..3ced37976 100644 --- a/configs/components/runtime-bolt.rb +++ b/configs/components/runtime-bolt.rb @@ -13,7 +13,12 @@ pkg.install_file "#{settings[:tools_root]}/bin/libgdbm_compat-4.dll", "#{settings[:ruby_bindir]}/libgdbm_compat-4.dll" pkg.install_file "#{settings[:tools_root]}/bin/libiconv-2.dll", "#{settings[:ruby_bindir]}/libiconv-2.dll" pkg.install_file "#{settings[:tools_root]}/bin/libffi-6.dll", "#{settings[:ruby_bindir]}/libffi-6.dll" - elsif platform.is_macos? or platform.name =~ /sles-15|el-8|debian-10|ubuntu-20.04|ubuntu-22.04/ || platform.is_fedora? + elsif ( (platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i >= 8) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 20) || + platform.is_fedora? || platform.is_macos? + ) # Do nothing for distros that have a suitable compiler do not use pl-build-tools diff --git a/configs/projects/_shared-agent-settings.rb b/configs/projects/_shared-agent-settings.rb index 1baff55b1..4f9815bcb 100644 --- a/configs/projects/_shared-agent-settings.rb +++ b/configs/projects/_shared-agent-settings.rb @@ -152,7 +152,13 @@ # stack canary and full RELRO. # We only do this on platforms that use their default OS toolchain since pl-gcc versions # are too old to support these flags. -if platform.name =~ /sles-15|el-8|debian-10/ || platform.is_fedora? + +if((platform.is_sles? && platform.os_version.to_i >= 15) || + (platform.is_el? && platform.os_version.to_i >= 8 && platform.architecture !~ /ppc64/) || + (platform.is_debian? && platform.os_version.to_i >= 10) || + (platform.is_ubuntu? && platform.os_version.to_i >= 20) || + platform.is_fedora? + ) proj.setting(:cppflags, "-I#{proj.includedir} -D_FORTIFY_SOURCE=2") proj.setting(:cflags, '-fstack-protector-strong -fno-plt -O2') proj.setting(:ldflags, "-L#{proj.libdir} -Wl,-rpath=#{proj.libdir},-z,relro,-z,now")