From ff7f7906c6aaa450ac1e92a1bb4d7d84cb559a60 Mon Sep 17 00:00:00 2001 From: Greg Lin Date: Thu, 3 Oct 2019 16:57:03 -0500 Subject: [PATCH 1/4] Use -std=gnu++0x on CentOS/RHEL 6 for compatibility with the default gcc CentOS/RHEL 6 have gcc 4.4.7 by default, which does not support -std=gnu++11. Previously, packages like digest were failing to compile on CentOS 6 using the default gcc. --- builder/package.centos-6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/package.centos-6 b/builder/package.centos-6 index 6fcaa90..8ad4c91 100644 --- a/builder/package.centos-6 +++ b/builder/package.centos-6 @@ -24,7 +24,7 @@ export GEM_PATH=/.gems sed -i 's/^CXX11\ =\ .*/CXX11\ =\ g++/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf sed -i 's/^CXX11FLAGS\ =\ .*/CXX11FLAGS\ =\ -g\ -O2\ \$\(LTO\)/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf sed -i 's/^CXX11PICFLAGS\ =\ .*/CXX11PICFLAGS\ =\ -fpic/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf -sed -i 's/^CXX11STD\ =\ .*/CXX11STD\ =\ -std=gnu++11/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf +sed -i 's/^CXX11STD\ =\ .*/CXX11STD\ =\ -std=gnu++0x/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf fpm \ -s dir \ From f8c4a7d4ff342a2d428c76941d7907db1526edd9 Mon Sep 17 00:00:00 2001 From: Greg Lin Date: Thu, 3 Oct 2019 17:54:50 -0500 Subject: [PATCH 2/4] Clarify comment about C++11 config --- builder/package.centos-6 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/builder/package.centos-6 b/builder/package.centos-6 index 8ad4c91..eb89fae 100644 --- a/builder/package.centos-6 +++ b/builder/package.centos-6 @@ -20,7 +20,9 @@ export PATH=/usr/local/rvm/rubies/ruby-2.6.3/bin/:/.gems/bin:${PATH} export GEM_HOME=/.gems export GEM_PATH=/.gems -# Additional config for c++11 support +# Additional config for C++11 support in R 3.6. +# R 3.6 no longer sets CXX11 flags without a full C++11 compiler present, but +# the default gcc 4.4.7 still partially supports C++11 through -std=gnu++0x. sed -i 's/^CXX11\ =\ .*/CXX11\ =\ g++/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf sed -i 's/^CXX11FLAGS\ =\ .*/CXX11FLAGS\ =\ -g\ -O2\ \$\(LTO\)/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf sed -i 's/^CXX11PICFLAGS\ =\ .*/CXX11PICFLAGS\ =\ -fpic/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf From b973973d39e166f892c2e57481e666e991f109bd Mon Sep 17 00:00:00 2001 From: Greg Lin Date: Fri, 4 Oct 2019 11:01:56 -0500 Subject: [PATCH 3/4] Additional details on C++11 config note --- builder/package.centos-6 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/builder/package.centos-6 b/builder/package.centos-6 index eb89fae..8a7a36f 100644 --- a/builder/package.centos-6 +++ b/builder/package.centos-6 @@ -21,8 +21,9 @@ export GEM_HOME=/.gems export GEM_PATH=/.gems # Additional config for C++11 support in R 3.6. -# R 3.6 no longer sets CXX11 flags without a full C++11 compiler present, but +# R 3.6.0 no longer sets CXX11 flags without a full C++11 compiler present, but # the default gcc 4.4.7 still partially supports C++11 through -std=gnu++0x. +# Use the same CXX11 flags as the defaults in R versions prior to 3.6.0. sed -i 's/^CXX11\ =\ .*/CXX11\ =\ g++/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf sed -i 's/^CXX11FLAGS\ =\ .*/CXX11FLAGS\ =\ -g\ -O2\ \$\(LTO\)/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf sed -i 's/^CXX11PICFLAGS\ =\ .*/CXX11PICFLAGS\ =\ -fpic/g' /opt/R/${R_VERSION}/lib/R/etc/Makeconf From bcc588166c0e5cf0e6860c06bfc8f7978c7945ba Mon Sep 17 00:00:00 2001 From: Greg Lin Date: Fri, 4 Oct 2019 11:18:36 -0500 Subject: [PATCH 4/4] Add bash shebangs --- builder/package.centos-6 | 2 ++ builder/package.centos-7 | 2 ++ builder/package.debian-9 | 2 ++ builder/package.opensuse-15 | 2 ++ builder/package.opensuse-42 | 2 ++ builder/package.ubuntu-1604 | 2 ++ builder/package.ubuntu-1804 | 2 ++ 7 files changed, 14 insertions(+) diff --git a/builder/package.centos-6 b/builder/package.centos-6 index 8a7a36f..beb371b 100644 --- a/builder/package.centos-6 +++ b/builder/package.centos-6 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/centos-6 ]]; then mkdir -p /tmp/output/centos-6 fi diff --git a/builder/package.centos-7 b/builder/package.centos-7 index 76b2ee2..e35430d 100644 --- a/builder/package.centos-7 +++ b/builder/package.centos-7 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/centos-7 ]]; then mkdir -p /tmp/output/centos-7 fi diff --git a/builder/package.debian-9 b/builder/package.debian-9 index 6780327..620dd48 100644 --- a/builder/package.debian-9 +++ b/builder/package.debian-9 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/debian-9 ]]; then mkdir -p /tmp/output/debian-9 fi diff --git a/builder/package.opensuse-15 b/builder/package.opensuse-15 index 58e14ff..83a3ecf 100644 --- a/builder/package.opensuse-15 +++ b/builder/package.opensuse-15 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/opensuse-15 ]]; then mkdir -p /tmp/output/opensuse-15 fi diff --git a/builder/package.opensuse-42 b/builder/package.opensuse-42 index 4cc1837..714b8bb 100644 --- a/builder/package.opensuse-42 +++ b/builder/package.opensuse-42 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/opensuse-42 ]]; then mkdir -p /tmp/output/opensuse-42 fi diff --git a/builder/package.ubuntu-1604 b/builder/package.ubuntu-1604 index 33aa081..fc5b187 100644 --- a/builder/package.ubuntu-1604 +++ b/builder/package.ubuntu-1604 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/ubuntu-1604 ]]; then mkdir -p /tmp/output/ubuntu-1604 fi diff --git a/builder/package.ubuntu-1804 b/builder/package.ubuntu-1804 index 2b3f7c4..a1ac4de 100644 --- a/builder/package.ubuntu-1804 +++ b/builder/package.ubuntu-1804 @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ ! -d /tmp/output/ubuntu-1804 ]]; then mkdir -p /tmp/output/ubuntu-1804 fi