summaryrefslogtreecommitdiff
path: root/dev-ada/gprbuild/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
commit4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch)
tree356496503d52354aa6d9f2d36126302fed5f3a73 /dev-ada/gprbuild/files
parentfcc5224904648a8e6eb528d7603154160a20022f (diff)
gentoo resync : 20.03.2022
Diffstat (limited to 'dev-ada/gprbuild/files')
-rw-r--r--dev-ada/gprbuild/files/gprbuild-2021-runpath.patch11
-rw-r--r--dev-ada/gprbuild/files/gprbuild-22.0.0-2020.patch47
2 files changed, 58 insertions, 0 deletions
diff --git a/dev-ada/gprbuild/files/gprbuild-2021-runpath.patch b/dev-ada/gprbuild/files/gprbuild-2021-runpath.patch
new file mode 100644
index 000000000000..9224a09f9049
--- /dev/null
+++ b/dev-ada/gprbuild/files/gprbuild-2021-runpath.patch
@@ -0,0 +1,11 @@
+--- a/gpr/src/gpr-util.adb 2022-03-19 22:41:32.372348082 +0100
++++ b/gpr/src/gpr-util.adb 2022-03-19 22:41:54.325010633 +0100
+@@ -3634,7 +3634,7 @@
+ end if;
+ end loop;
+
+- return Ret;
++ return Ret(1 .. Length - Separator'Length);
+ end;
+ end Concat_Paths;
+
diff --git a/dev-ada/gprbuild/files/gprbuild-22.0.0-2020.patch b/dev-ada/gprbuild/files/gprbuild-22.0.0-2020.patch
new file mode 100644
index 000000000000..ba5c2f858de7
--- /dev/null
+++ b/dev-ada/gprbuild/files/gprbuild-22.0.0-2020.patch
@@ -0,0 +1,47 @@
+--- a/gpr/src/gpr_imports.c 2022-02-27 10:10:34.053638209 +0100
++++ b/gpr/src/gpr_imports.c 2022-02-27 10:12:03.898276758 +0100
+@@ -114,6 +114,44 @@
+ const char *__gnat_default_libgcc_subdir = "lib";
+ #endif
+
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <limits.h>
++#include <unistd.h>
++
++ extern long long __gnat_file_time(char* name)
++ {
++ long long result;
++
++ if (name == NULL) {
++ return LLONG_MIN;
++ }
++ /* Number of seconds between <Jan 1st 1970> and <Jan 1st 2150>. */
++ static const long long ada_epoch_offset = (136 * 365 + 44 * 366) * 86400LL;
++ struct stat sb;
++ if (stat(name, &sb) != 0) {
++ return LLONG_MIN;
++ }
++
++ // return (sb.st_mtim.tv_sec - ada_epoch_offset) * 1E9
++ // + sb.st_mtim.tv_nsec;
++ // with check overflow below
++
++ if (__builtin_ssubll_overflow(sb.st_mtim.tv_sec, ada_epoch_offset, &result)) {
++ return LLONG_MIN;
++ }
++
++ if (__builtin_smulll_overflow(result, 1E9, &result)) {
++ return LLONG_MIN;
++ }
++
++ if (__builtin_saddll_overflow(result, sb.st_mtim.tv_nsec, &result)) {
++ return LLONG_MIN;
++ }
++
++ return result;
++ }
++
+ #ifdef __cplusplus
+ }
+ #endif