The retpoline technique is one of the mitigations for the Spectre v2
vulnerability on modern processors. At the moment, our kernels have
only minimal asm retpoline support. Enhance the kernel with full
retpoline support by building with a retpoline-enabled version of gcc
(v7.3.0)
Change-Id: I34e62266a9843b9a4ca24938589cd9a30ccec42f
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5069
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Bo Gan <ganb@vmware.com>
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
Summary: Linux API header files |
| 2 | 2 |
Name: linux-api-headers |
| 3 | 3 |
Version: 4.9.94 |
| 4 |
-Release: 1%{?dist}
|
|
| 4 |
+Release: 2%{?dist}
|
|
| 5 | 5 |
License: GPLv2 |
| 6 | 6 |
URL: http://www.kernel.org/ |
| 7 | 7 |
Group: System Environment/Kernel |
| ... | ... |
@@ -25,6 +25,8 @@ find /%{buildroot}%{_includedir} \( -name .install -o -name ..install.cmd \) -de
|
| 25 | 25 |
%defattr(-,root,root) |
| 26 | 26 |
%{_includedir}/*
|
| 27 | 27 |
%changelog |
| 28 |
+* Mon Apr 23 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.94-2 |
|
| 29 |
+- Add full retpoline support by building with retpoline-enabled gcc. |
|
| 28 | 30 |
* Wed Apr 18 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.94-1 |
| 29 | 31 |
- Update to version 4.9.94 |
| 30 | 32 |
* Mon Apr 02 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.92-1 |
| ... | ... |
@@ -2,7 +2,7 @@ |
| 2 | 2 |
Summary: Kernel |
| 3 | 3 |
Name: linux-aws |
| 4 | 4 |
Version: 4.9.94 |
| 5 |
-Release: 1%{?kat_build:.%kat_build}%{?dist}
|
|
| 5 |
+Release: 2%{?kat_build:.%kat_build}%{?dist}
|
|
| 6 | 6 |
License: GPLv2 |
| 7 | 7 |
URL: http://www.kernel.org/ |
| 8 | 8 |
Group: System Environment/Kernel |
| ... | ... |
@@ -434,6 +434,8 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg
|
| 434 | 434 |
/usr/share/doc/* |
| 435 | 435 |
|
| 436 | 436 |
%changelog |
| 437 |
+* Mon Apr 23 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.94-2 |
|
| 438 |
+- Add full retpoline support by building with retpoline-enabled gcc. |
|
| 437 | 439 |
* Wed Apr 18 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.94-1 |
| 438 | 440 |
- Update to version 4.9.94. Fix panic in ip_set. |
| 439 | 441 |
* Mon Apr 02 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.92-1 |
| ... | ... |
@@ -2,7 +2,7 @@ |
| 2 | 2 |
Summary: Kernel |
| 3 | 3 |
Name: linux-esx |
| 4 | 4 |
Version: 4.9.94 |
| 5 |
-Release: 1%{?dist}
|
|
| 5 |
+Release: 2%{?dist}
|
|
| 6 | 6 |
License: GPLv2 |
| 7 | 7 |
URL: http://www.kernel.org/ |
| 8 | 8 |
Group: System Environment/Kernel |
| ... | ... |
@@ -232,6 +232,8 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg
|
| 232 | 232 |
/usr/src/linux-headers-%{uname_r}
|
| 233 | 233 |
|
| 234 | 234 |
%changelog |
| 235 |
+* Mon Apr 23 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.94-2 |
|
| 236 |
+- Add full retpoline support by building with retpoline-enabled gcc. |
|
| 235 | 237 |
* Wed Apr 18 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.94-1 |
| 236 | 238 |
- Update to version 4.9.94. Fix panic in ip_set. |
| 237 | 239 |
* Mon Apr 02 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.92-1 |
| ... | ... |
@@ -2,7 +2,7 @@ |
| 2 | 2 |
Summary: Kernel |
| 3 | 3 |
Name: linux-secure |
| 4 | 4 |
Version: 4.9.94 |
| 5 |
-Release: 1%{?kat_build:.%kat_build}%{?dist}
|
|
| 5 |
+Release: 2%{?kat_build:.%kat_build}%{?dist}
|
|
| 6 | 6 |
License: GPLv2 |
| 7 | 7 |
URL: http://www.kernel.org/ |
| 8 | 8 |
Group: System Environment/Kernel |
| ... | ... |
@@ -321,6 +321,8 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg
|
| 321 | 321 |
/usr/src/linux-headers-%{uname_r}
|
| 322 | 322 |
|
| 323 | 323 |
%changelog |
| 324 |
+* Mon Apr 23 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.94-2 |
|
| 325 |
+- Add full retpoline support by building with retpoline-enabled gcc. |
|
| 324 | 326 |
* Wed Apr 18 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.94-1 |
| 325 | 327 |
- Update to version 4.9.94. Fix panic in ip_set. |
| 326 | 328 |
* Mon Apr 02 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.92-1 |
| ... | ... |
@@ -2,7 +2,7 @@ |
| 2 | 2 |
Summary: Kernel |
| 3 | 3 |
Name: linux |
| 4 | 4 |
Version: 4.9.94 |
| 5 |
-Release: 1%{?kat_build:.%kat_build}%{?dist}
|
|
| 5 |
+Release: 2%{?kat_build:.%kat_build}%{?dist}
|
|
| 6 | 6 |
License: GPLv2 |
| 7 | 7 |
URL: http://www.kernel.org/ |
| 8 | 8 |
Group: System Environment/Kernel |
| ... | ... |
@@ -355,6 +355,8 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg
|
| 355 | 355 |
/usr/share/doc/* |
| 356 | 356 |
|
| 357 | 357 |
%changelog |
| 358 |
+* Mon Apr 23 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.94-2 |
|
| 359 |
+- Add full retpoline support by building with retpoline-enabled gcc. |
|
| 358 | 360 |
* Wed Apr 18 2018 Alexey Makhalov <amakhalov@vmware.com> 4.9.94-1 |
| 359 | 361 |
- Update to version 4.9.94. Fix panic in ip_set. |
| 360 | 362 |
- .config: disable XEN_BALLOON_MEMORY_HOTPLUG |
| ... | ... |
@@ -1,9 +1,87 @@ |
| 1 | 1 |
{
|
| 2 |
- "dummy_package": {
|
|
| 2 |
+ "dummy_package": {
|
|
| 3 | 3 |
"files": [ |
| 4 |
- {"src": "path_to_file1_to_be_copied", "dst": "file1_destination"},
|
|
| 4 |
+ {"src": "path_to_file1_to_be_copied", "dst": "file1_destination"},
|
|
| 5 | 5 |
{"src": "path_to_file2_to_be_copied", "dst": "file2_destination"}
|
| 6 |
- ], |
|
| 7 |
- "macros": ["macro1 value1","macro2 value2"] |
|
| 6 |
+ ], |
|
| 7 |
+ "macros": ["macro1 value1","macro2 value2"], |
|
| 8 |
+ "override_toolchain": [ |
|
| 9 |
+ {"package": "package_name", "version": "version_to_use"}
|
|
| 10 |
+ ] |
|
| 11 |
+ }, |
|
| 12 |
+ |
|
| 13 |
+ "linux-api-headers": {
|
|
| 14 |
+ "files": [], |
|
| 15 |
+ "macros": [], |
|
| 16 |
+ "override_toolchain": [ |
|
| 17 |
+ {"package": "gcc", "version": "7.3.0"},
|
|
| 18 |
+ {"package": "libgcc", "version": "7.3.0"},
|
|
| 19 |
+ {"package": "libgcc-devel", "version": "7.3.0"},
|
|
| 20 |
+ {"package": "libgcc-atomic", "version": "7.3.0"},
|
|
| 21 |
+ {"package": "libstdc++", "version": "7.3.0"},
|
|
| 22 |
+ {"package": "libstdc++-devel", "version": "7.3.0"},
|
|
| 23 |
+ {"package": "libgomp", "version": "7.3.0"},
|
|
| 24 |
+ {"package": "libgomp-devel", "version": "7.3.0"}
|
|
| 25 |
+ ] |
|
| 26 |
+ }, |
|
| 27 |
+ |
|
| 28 |
+ "linux": {
|
|
| 29 |
+ "files": [], |
|
| 30 |
+ "macros": [], |
|
| 31 |
+ "override_toolchain": [ |
|
| 32 |
+ {"package": "gcc", "version": "7.3.0"},
|
|
| 33 |
+ {"package": "libgcc", "version": "7.3.0"},
|
|
| 34 |
+ {"package": "libgcc-devel", "version": "7.3.0"},
|
|
| 35 |
+ {"package": "libgcc-atomic", "version": "7.3.0"},
|
|
| 36 |
+ {"package": "libstdc++", "version": "7.3.0"},
|
|
| 37 |
+ {"package": "libstdc++-devel", "version": "7.3.0"},
|
|
| 38 |
+ {"package": "libgomp", "version": "7.3.0"},
|
|
| 39 |
+ {"package": "libgomp-devel", "version": "7.3.0"}
|
|
| 40 |
+ ] |
|
| 41 |
+ }, |
|
| 42 |
+ |
|
| 43 |
+ "linux-esx": {
|
|
| 44 |
+ "files": [], |
|
| 45 |
+ "macros": [], |
|
| 46 |
+ "override_toolchain": [ |
|
| 47 |
+ {"package": "gcc", "version": "7.3.0"},
|
|
| 48 |
+ {"package": "libgcc", "version": "7.3.0"},
|
|
| 49 |
+ {"package": "libgcc-devel", "version": "7.3.0"},
|
|
| 50 |
+ {"package": "libgcc-atomic", "version": "7.3.0"},
|
|
| 51 |
+ {"package": "libstdc++", "version": "7.3.0"},
|
|
| 52 |
+ {"package": "libstdc++-devel", "version": "7.3.0"},
|
|
| 53 |
+ {"package": "libgomp", "version": "7.3.0"},
|
|
| 54 |
+ {"package": "libgomp-devel", "version": "7.3.0"}
|
|
| 55 |
+ ] |
|
| 56 |
+ }, |
|
| 57 |
+ |
|
| 58 |
+ "linux-secure": {
|
|
| 59 |
+ "files": [], |
|
| 60 |
+ "macros": [], |
|
| 61 |
+ "override_toolchain": [ |
|
| 62 |
+ {"package": "gcc", "version": "7.3.0"},
|
|
| 63 |
+ {"package": "libgcc", "version": "7.3.0"},
|
|
| 64 |
+ {"package": "libgcc-devel", "version": "7.3.0"},
|
|
| 65 |
+ {"package": "libgcc-atomic", "version": "7.3.0"},
|
|
| 66 |
+ {"package": "libstdc++", "version": "7.3.0"},
|
|
| 67 |
+ {"package": "libstdc++-devel", "version": "7.3.0"},
|
|
| 68 |
+ {"package": "libgomp", "version": "7.3.0"},
|
|
| 69 |
+ {"package": "libgomp-devel", "version": "7.3.0"}
|
|
| 70 |
+ ] |
|
| 71 |
+ }, |
|
| 72 |
+ |
|
| 73 |
+ "linux-aws": {
|
|
| 74 |
+ "files": [], |
|
| 75 |
+ "macros": [], |
|
| 76 |
+ "override_toolchain": [ |
|
| 77 |
+ {"package": "gcc", "version": "7.3.0"},
|
|
| 78 |
+ {"package": "libgcc", "version": "7.3.0"},
|
|
| 79 |
+ {"package": "libgcc-devel", "version": "7.3.0"},
|
|
| 80 |
+ {"package": "libgcc-atomic", "version": "7.3.0"},
|
|
| 81 |
+ {"package": "libstdc++", "version": "7.3.0"},
|
|
| 82 |
+ {"package": "libstdc++-devel", "version": "7.3.0"},
|
|
| 83 |
+ {"package": "libgomp", "version": "7.3.0"},
|
|
| 84 |
+ {"package": "libgomp-devel", "version": "7.3.0"}
|
|
| 85 |
+ ] |
|
| 8 | 86 |
} |
| 9 | 87 |
} |
| ... | ... |
@@ -4,13 +4,17 @@ import os |
| 4 | 4 |
class CommandUtils(object): |
| 5 | 5 |
def __init__(self): |
| 6 | 6 |
self.findBinary = "find" |
| 7 |
+ self.sortBinary = "sort" |
|
| 7 | 8 |
|
| 8 | 9 |
def findFile (self, filename, sourcePath): |
| 9 |
- process = subprocess.Popen([self.findBinary, "-L", sourcePath, "-name", filename, "-not", "-type", "d"], stdout=subprocess.PIPE) |
|
| 10 |
- returnVal = process.wait() |
|
| 10 |
+ # Perform an alphabetical sort of the output from find, to get consistent ordering. |
|
| 11 |
+ processFind = subprocess.Popen([self.findBinary, "-L", sourcePath, "-name", filename, "-not", "-type", "d"], stdout=subprocess.PIPE) |
|
| 12 |
+ processSort = subprocess.Popen([self.sortBinary, "-d"], stdin=processFind.stdout, stdout=subprocess.PIPE) |
|
| 13 |
+ processFind.stdout.close() # Allow processFind to receive a SIGPIPE if processSort exits. |
|
| 14 |
+ returnVal = processSort.wait() |
|
| 11 | 15 |
if returnVal != 0: |
| 12 | 16 |
return None |
| 13 |
- result=process.communicate()[0] |
|
| 17 |
+ result=processSort.communicate()[0] |
|
| 14 | 18 |
if result is None: |
| 15 | 19 |
return None |
| 16 | 20 |
return result.split() |
| ... | ... |
@@ -40,7 +40,7 @@ class PackageBuilderBase(object): |
| 40 | 40 |
packageIsAlreadyBuilt=True |
| 41 | 41 |
pkgUtils = PackageUtils(self.logName,self.logPath) |
| 42 | 42 |
for pkg in listRPMPackages: |
| 43 |
- if pkgUtils.findRPMFileForGivenPackage(pkg, index) is None: |
|
| 43 |
+ if pkgUtils.findRPMFileForGivenPackage(pkg, "*", index) is None: |
|
| 44 | 44 |
packageIsAlreadyBuilt=False |
| 45 | 45 |
break |
| 46 | 46 |
return packageIsAlreadyBuilt |
| ... | ... |
@@ -81,7 +81,7 @@ class PackageBuilder(PackageBuilderBase): |
| 81 | 81 |
if not returnVal: |
| 82 | 82 |
raise Exception("Unable to prepare build root")
|
| 83 | 83 |
tUtils=ToolChainUtils(self.logName,self.logPath) |
| 84 |
- tUtils.installToolChainRPMS(chrootID, self.package, self.logPath) |
|
| 84 |
+ tUtils.installToolChainRPMS(chrootID, self.package, self.listBuildOptionPackages, self.pkgBuildOptionFile, self.logPath) |
|
| 85 | 85 |
except Exception as e: |
| 86 | 86 |
if chrootID is not None: |
| 87 | 87 |
self.logger.debug("Deleting chroot: " + chrootID)
|
| ... | ... |
@@ -290,10 +290,15 @@ class PackageUtils(object): |
| 290 | 290 |
listSRPMFiles.append(listcontents[1]) |
| 291 | 291 |
return listRPMFiles,listSRPMFiles |
| 292 | 292 |
|
| 293 |
- def findRPMFileForGivenPackage(self,package, index=0): |
|
| 293 |
+ def findRPMFileForGivenPackage(self, package, version = "*", index=0): |
|
| 294 | 294 |
cmdUtils = CommandUtils() |
| 295 |
- version = SPECS.getData().getVersion(package,index) |
|
| 296 |
- release = SPECS.getData().getRelease(package,index) |
|
| 295 |
+ release = "*" |
|
| 296 |
+ |
|
| 297 |
+ # If no version is specified, use the latest from the source |
|
| 298 |
+ # code. |
|
| 299 |
+ if version == "*": |
|
| 300 |
+ version = SPECS.getData().getVersion(package,index) |
|
| 301 |
+ release = SPECS.getData().getRelease(package,index) |
|
| 297 | 302 |
listFoundRPMFiles = sum([cmdUtils.findFile(package+"-"+version+"-"+release+"."+platform.machine()+".rpm",constants.rpmPath), |
| 298 | 303 |
cmdUtils.findFile(package+"-"+version+"-"+release+".noarch.rpm",constants.rpmPath)], []) |
| 299 | 304 |
if constants.inputRPMSPath is not None: |
| ... | ... |
@@ -8,6 +8,8 @@ import os.path |
| 8 | 8 |
import platform |
| 9 | 9 |
import traceback |
| 10 | 10 |
import shutil |
| 11 |
+import json |
|
| 12 |
+import collections |
|
| 11 | 13 |
|
| 12 | 14 |
class ToolChainUtils(object): |
| 13 | 15 |
|
| ... | ... |
@@ -56,9 +58,9 @@ class ToolChainUtils(object): |
| 56 | 56 |
|
| 57 | 57 |
self.logger.info("Successfully prepared chroot:"+chrootID)
|
| 58 | 58 |
|
| 59 |
- def findRPMFileInGivenLocation(self,package,rpmdirPath): |
|
| 59 |
+ def findRPMFileInGivenLocation(self, package, rpmdirPath, version = "*"): |
|
| 60 | 60 |
cmdUtils = CommandUtils() |
| 61 |
- listFoundRPMFiles = cmdUtils.findFile(package+"-*.rpm",rpmdirPath) |
|
| 61 |
+ listFoundRPMFiles = cmdUtils.findFile(package+"-"+version+"-*.rpm",rpmdirPath) |
|
| 62 | 62 |
listFilterRPMFiles=[] |
| 63 | 63 |
for f in listFoundRPMFiles: |
| 64 | 64 |
rpmFileName=os.path.basename(f) |
| ... | ... |
@@ -71,8 +73,13 @@ class ToolChainUtils(object): |
| 71 | 71 |
if len(listFilterRPMFiles) == 0 : |
| 72 | 72 |
return None |
| 73 | 73 |
if len(listFilterRPMFiles) > 1 : |
| 74 |
- self.logger.error("Found multiple rpm files for given package in rpm directory.Unable to determine the rpm file for package:"+package)
|
|
| 75 |
- return None |
|
| 74 |
+ # We use findRPMFileInGivenLocation() only when bootstrapping; |
|
| 75 |
+ # so it is okay to use any version for the core toolchain packages. |
|
| 76 |
+ if package in constants.listToolChainRPMsToInstall: |
|
| 77 |
+ return listFilterRPMFiles[0] |
|
| 78 |
+ else: |
|
| 79 |
+ self.logger.error("Found multiple rpm files for given package in rpm directory.Unable to determine the rpm file for package:"+package)
|
|
| 80 |
+ return None |
|
| 76 | 81 |
|
| 77 | 82 |
def buildCoreToolChainPackages(self, listBuildOptionPackages, pkgBuildOptionFile): |
| 78 | 83 |
self.logger.info("Building core toolchain packages.....")
|
| ... | ... |
@@ -95,7 +102,7 @@ class ToolChainUtils(object): |
| 95 | 95 |
if not returnVal: |
| 96 | 96 |
self.logger.error("Creating chroot failed")
|
| 97 | 97 |
raise Exception("creating chroot failed")
|
| 98 |
- self.installToolChainRPMS(chrootID, package, destLogPath) |
|
| 98 |
+ self.installToolChainRPMS(chrootID, package, listBuildOptionPackages, pkgBuildOptionFile, destLogPath) |
|
| 99 | 99 |
pkgUtils.adjustGCCSpecs(package, chrootID, destLogPath) |
| 100 | 100 |
pkgUtils.buildRPMSForGivenPackage(package, chrootID, listBuildOptionPackages, pkgBuildOptionFile, destLogPath) |
| 101 | 101 |
pkgCount += 1 |
| ... | ... |
@@ -111,7 +118,7 @@ class ToolChainUtils(object): |
| 111 | 111 |
raise e |
| 112 | 112 |
return pkgCount |
| 113 | 113 |
|
| 114 |
- def installToolChainRPMS(self,chrootID, packageName, logPath=None): |
|
| 114 |
+ def installToolChainRPMS(self,chrootID, packageName, listBuildOptionPackages, pkgBuildOptionFile, logPath=None): |
|
| 115 | 115 |
if logPath is None: |
| 116 | 116 |
logPath=self.logPath |
| 117 | 117 |
cmdUtils = CommandUtils() |
| ... | ... |
@@ -122,22 +129,38 @@ class ToolChainUtils(object): |
| 122 | 122 |
for package in constants.listToolChainRPMsToInstall: |
| 123 | 123 |
pkgUtils=PackageUtils(self.logName,self.logPath) |
| 124 | 124 |
rpmFile = None |
| 125 |
+ |
|
| 126 |
+ # Default to any version. |
|
| 127 |
+ version = "*" |
|
| 128 |
+ if packageName in listBuildOptionPackages: |
|
| 129 |
+ jsonData = open(pkgBuildOptionFile) |
|
| 130 |
+ pkg_build_option_json = json.load(jsonData, object_pairs_hook=collections.OrderedDict) |
|
| 131 |
+ jsonData.close() |
|
| 132 |
+ pkgs_sorted = pkg_build_option_json.items() |
|
| 133 |
+ for pkg in pkgs_sorted: |
|
| 134 |
+ p = str(pkg[0].encode('utf-8'))
|
|
| 135 |
+ if p == packageName: |
|
| 136 |
+ overridelist = pkg[1]["override_toolchain"] |
|
| 137 |
+ for override in overridelist: |
|
| 138 |
+ if package == str(override["package"].encode('utf-8')):
|
|
| 139 |
+ version = str(override["version"].encode('utf-8'))
|
|
| 140 |
+ |
|
| 125 | 141 |
if constants.rpmCheck: |
| 126 |
- rpmFile=pkgUtils.findRPMFileForGivenPackage(package) |
|
| 142 |
+ rpmFile=pkgUtils.findRPMFileForGivenPackage(package, version) |
|
| 127 | 143 |
else: |
| 128 | 144 |
if (packageName not in constants.listToolChainRPMsToInstall or |
| 129 | 145 |
constants.listToolChainRPMsToInstall.index(packageName) > constants.listToolChainRPMsToInstall.index(package)): |
| 130 |
- rpmFile=pkgUtils.findRPMFileForGivenPackage(package) |
|
| 146 |
+ rpmFile=pkgUtils.findRPMFileForGivenPackage(package, version) |
|
| 131 | 147 |
if rpmFile is None: |
| 132 | 148 |
# sqlite-autoconf package was renamed, but it still published as sqlite-autoconf |
| 133 | 149 |
if package == "sqlite": |
| 134 | 150 |
package = "sqlite-autoconf" |
| 135 |
- rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo) |
|
| 151 |
+ rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo, version) |
|
| 136 | 152 |
if rpmFile is None: |
| 137 | 153 |
if package in constants.listOfRPMsProvidedAfterBuild: |
| 138 | 154 |
self.logger.info("No old version of "+package+" exists, skip until the new version is built")
|
| 139 | 155 |
continue |
| 140 |
- self.logger.error("Unable to find rpm "+ package +" in current and previous versions")
|
|
| 156 |
+ self.logger.error("Unable to find rpm "+ package + "-" + version +" in current and previous versions")
|
|
| 141 | 157 |
raise Exception("Input Error")
|
| 142 | 158 |
rpmFiles += " " + rpmFile |
| 143 | 159 |
packages += " " + package |
| ... | ... |
@@ -5,7 +5,7 @@ x86_64/python2-devel-2.7.11-1.ph1.x86_64.rpm |
| 5 | 5 |
x86_64/nspr-4.11-1.ph1.x86_64.rpm |
| 6 | 6 |
x86_64/rpm-4.13.0.1-5.ph2.x86_64.rpm |
| 7 | 7 |
x86_64/rpm-libs-4.13.0.1-5.ph2.x86_64.rpm |
| 8 |
-x86_64/binutils-devel-2.25.1-1.ph1.x86_64.rpm |
|
| 8 |
+x86_64/binutils-devel-2.30-2.ph1.x86_64.rpm |
|
| 9 | 9 |
x86_64/nss-3.21-1.ph1.x86_64.rpm |
| 10 | 10 |
x86_64/mpfr-devel-3.1.3-1.ph1.x86_64.rpm |
| 11 | 11 |
x86_64/cpio-2.12-1.ph1.x86_64.rpm |
| ... | ... |
@@ -13,7 +13,8 @@ x86_64/sed-4.2.2-1.ph1.x86_64.rpm |
| 13 | 13 |
x86_64/libffi-3.2.1-1.ph1.x86_64.rpm |
| 14 | 14 |
x86_64/gmp-6.0.0a-1.ph1.x86_64.rpm |
| 15 | 15 |
x86_64/diffutils-3.3-2.ph1.x86_64.rpm |
| 16 |
-x86_64/gcc-5.3.0-1.ph1.x86_64.rpm |
|
| 16 |
+x86_64/gcc-5.3.0-4.ph1.x86_64.rpm |
|
| 17 |
+x86_64/gcc-7.3.0-1.ph1.x86_64.rpm |
|
| 17 | 18 |
x86_64/gmp-devel-6.0.0a-1.ph1.x86_64.rpm |
| 18 | 19 |
x86_64/automake-1.15-1.ph1.x86_64.rpm |
| 19 | 20 |
x86_64/groff-1.22.2-1.ph1.x86_64.rpm |
| ... | ... |
@@ -28,7 +29,10 @@ x86_64/rpm-devel-4.13.0.1-5.ph2.x86_64.rpm |
| 28 | 28 |
x86_64/file-5.24-1.ph1.x86_64.rpm |
| 29 | 29 |
x86_64/mpfr-3.1.3-1.ph1.x86_64.rpm |
| 30 | 30 |
x86_64/zlib-devel-1.2.8-2.ph1.x86_64.rpm |
| 31 |
-x86_64/libgcc-devel-5.3.0-1.ph1.x86_64.rpm |
|
| 31 |
+x86_64/libgcc-devel-5.3.0-4.ph1.x86_64.rpm |
|
| 32 |
+x86_64/libgcc-devel-7.3.0-1.ph1.x86_64.rpm |
|
| 33 |
+x86_64/libgcc-atomic-5.3.0-4.ph1.x86_64.rpm |
|
| 34 |
+x86_64/libgcc-atomic-7.3.0-1.ph1.x86_64.rpm |
|
| 32 | 35 |
x86_64/bison-3.0.4-1.ph1.x86_64.rpm |
| 33 | 36 |
x86_64/lua-5.3.2-1.ph1.x86_64.rpm |
| 34 | 37 |
x86_64/util-linux-2.27.1-1.ph1.x86_64.rpm |
| ... | ... |
@@ -45,11 +49,13 @@ x86_64/gawk-4.1.3-4.ph1.x86_64.rpm |
| 45 | 45 |
x86_64/libtool-2.4.6-1.ph1.x86_64.rpm |
| 46 | 46 |
x86_64/zlib-1.2.8-2.ph1.x86_64.rpm |
| 47 | 47 |
x86_64/python2-libs-2.7.11-1.ph1.x86_64.rpm |
| 48 |
-x86_64/libgomp-5.3.0-1.ph1.x86_64.rpm |
|
| 48 |
+x86_64/libgomp-5.3.0-4.ph1.x86_64.rpm |
|
| 49 |
+x86_64/libgomp-7.3.0-1.ph1.x86_64.rpm |
|
| 49 | 50 |
x86_64/readline-devel-7.0-1.ph1.x86_64.rpm |
| 50 | 51 |
x86_64/sqlite-autoconf-3.11.0-1.ph1.x86_64.rpm |
| 51 | 52 |
x86_64/flex-2.5.39-1.ph1.x86_64.rpm |
| 52 |
-x86_64/libstdc++-devel-5.3.0-1.ph1.x86_64.rpm |
|
| 53 |
+x86_64/libstdc++-devel-5.3.0-4.ph1.x86_64.rpm |
|
| 54 |
+x86_64/libstdc++-devel-7.3.0-1.ph1.x86_64.rpm |
|
| 53 | 55 |
x86_64/openssl-1.0.2g-1.ph1.x86_64.rpm |
| 54 | 56 |
x86_64/elfutils-0.165-1.ph1.x86_64.rpm |
| 55 | 57 |
x86_64/expat-2.1.0-1.ph1.x86_64.rpm |
| ... | ... |
@@ -61,10 +67,12 @@ x86_64/python2-2.7.11-1.ph1.x86_64.rpm |
| 61 | 61 |
x86_64/elfutils-devel-0.165-1.ph1.x86_64.rpm |
| 62 | 62 |
x86_64/patch-2.7.5-1.ph1.x86_64.rpm |
| 63 | 63 |
x86_64/xz-5.2.2-1.ph1.x86_64.rpm |
| 64 |
-x86_64/binutils-2.25.1-1.ph1.x86_64.rpm |
|
| 65 |
-x86_64/libgomp-devel-5.3.0-1.ph1.x86_64.rpm |
|
| 64 |
+x86_64/binutils-2.30-2.ph1.x86_64.rpm |
|
| 65 |
+x86_64/libgomp-devel-5.3.0-4.ph1.x86_64.rpm |
|
| 66 |
+x86_64/libgomp-devel-7.3.0-1.ph1.x86_64.rpm |
|
| 66 | 67 |
x86_64/bzip2-devel-1.0.6-4.ph1.x86_64.rpm |
| 67 |
-x86_64/libgcc-5.3.0-1.ph1.x86_64.rpm |
|
| 68 |
+x86_64/libgcc-5.3.0-4.ph1.x86_64.rpm |
|
| 69 |
+x86_64/libgcc-7.3.0-1.ph1.x86_64.rpm |
|
| 68 | 70 |
x86_64/gzip-1.6-1.ph1.x86_64.rpm |
| 69 | 71 |
x86_64/elfutils-libelf-devel-0.165-1.ph1.x86_64.rpm |
| 70 | 72 |
x86_64/openssl-devel-1.0.2g-1.ph1.x86_64.rpm |
| ... | ... |
@@ -72,7 +80,8 @@ x86_64/pkg-config-0.28-1.ph1.x86_64.rpm |
| 72 | 72 |
x86_64/popt-devel-1.16-1.ph1.x86_64.rpm |
| 73 | 73 |
x86_64/flex-devel-2.5.39-1.ph1.x86_64.rpm |
| 74 | 74 |
x86_64/findutils-4.4.2-1.ph1.x86_64.rpm |
| 75 |
-x86_64/libstdc++-5.3.0-1.ph1.x86_64.rpm |
|
| 75 |
+x86_64/libstdc++-5.3.0-4.ph1.x86_64.rpm |
|
| 76 |
+x86_64/libstdc++-7.3.0-1.ph1.x86_64.rpm |
|
| 76 | 77 |
x86_64/libpipeline-1.4.1-1.ph1.x86_64.rpm |
| 77 | 78 |
x86_64/make-4.1-1.ph1.x86_64.rpm |
| 78 | 79 |
x86_64/glibc-devel-2.22-3.ph1.x86_64.rpm |