mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 09:46:20 +00:00
parent
f53df495db
commit
d2d74cc5fa
@ -1 +1 @@
|
||||
20345a83596fa42a25a85938329aea54bb4b2146
|
||||
3cade18cf9defeefa714aa91de3b157fbad4aa18
|
||||
|
105
repos/ports/src/noux-pkg/gcc/patches/bug89349.patch
Normal file
105
repos/ports/src/noux-pkg/gcc/patches/bug89349.patch
Normal file
@ -0,0 +1,105 @@
|
||||
commit c5d49cb71a778ce74b8265a075a9c3536c2989ad
|
||||
Author: Eric Botcazou <ebotcazou@adacore.com>
|
||||
Date: Sat Feb 23 10:04:23 2019 +0000
|
||||
|
||||
re PR ada/89349 (segfault when building GCC 7 & 8 branch with GCC master)
|
||||
|
||||
PR ada/89349
|
||||
Backport from mainline
|
||||
2018-05-25 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* osint.ads (Unknown_Attributes): No longer pretend this is a constant.
|
||||
(No_File_Info_Cache): Initialize separately.
|
||||
* osint.adb (No_File_Info_Cache): Update initializer.
|
||||
|
||||
From-SVN: r269153
|
||||
|
||||
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
|
||||
index e4127e472aa..626c590a6ab 100644
|
||||
--- a/gcc/ada/ChangeLog
|
||||
+++ b/gcc/ada/ChangeLog
|
||||
@@ -1,3 +1,13 @@
|
||||
+2019-02-23 Eric Botcazou <ebotcazou@adacore.com>
|
||||
+
|
||||
+ PR ada/89349
|
||||
+ Backport from mainline
|
||||
+ 2018-05-25 Arnaud Charlet <charlet@adacore.com>
|
||||
+
|
||||
+ * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
|
||||
+ (No_File_Info_Cache): Initialize separately.
|
||||
+ * osint.adb (No_File_Info_Cache): Update initializer.
|
||||
+
|
||||
2019-02-22 Release Manager
|
||||
|
||||
* GCC 8.3.0 released.
|
||||
diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb
|
||||
index 0c23761b6dc..896fbc7ee37 100644
|
||||
--- a/gcc/ada/osint.adb
|
||||
+++ b/gcc/ada/osint.adb
|
||||
@@ -250,8 +250,7 @@ package body Osint is
|
||||
Attr : aliased File_Attributes;
|
||||
end record;
|
||||
|
||||
- No_File_Info_Cache : constant File_Info_Cache :=
|
||||
- (No_File, Unknown_Attributes);
|
||||
+ No_File_Info_Cache : constant File_Info_Cache := (No_File, (others => 0));
|
||||
|
||||
package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable (
|
||||
Header_Num => File_Hash_Num,
|
||||
diff --git a/gcc/ada/osint.ads b/gcc/ada/osint.ads
|
||||
index 65a87fe4ce3..6c75b521456 100644
|
||||
--- a/gcc/ada/osint.ads
|
||||
+++ b/gcc/ada/osint.ads
|
||||
@@ -255,10 +255,26 @@ package Osint is
|
||||
-- from the disk and then cached in the File_Attributes parameter (possibly
|
||||
-- along with other values).
|
||||
|
||||
- type File_Attributes is private;
|
||||
- Unknown_Attributes : constant File_Attributes;
|
||||
+ File_Attributes_Size : constant Natural := 32;
|
||||
+ -- This should be big enough to fit a "struct file_attributes" on any
|
||||
+ -- system. It doesn't cause any malfunction if it is too big (which avoids
|
||||
+ -- the need for either mapping the struct exactly or importing the sizeof
|
||||
+ -- from C, which would result in dynamic code). However, it does waste
|
||||
+ -- space (e.g. when a component of this type appears in a record, if it is
|
||||
+ -- unnecessarily large). Note: for runtime units, use System.OS_Constants.
|
||||
+ -- SIZEOF_struct_file_attributes instead, which has the exact value.
|
||||
+
|
||||
+ type File_Attributes is
|
||||
+ array (1 .. File_Attributes_Size)
|
||||
+ of System.Storage_Elements.Storage_Element;
|
||||
+ for File_Attributes'Alignment use Standard'Maximum_Alignment;
|
||||
+
|
||||
+ Unknown_Attributes : File_Attributes;
|
||||
-- A cache for various attributes for a file (length, accessibility,...)
|
||||
- -- This must be initialized to Unknown_Attributes prior to the first call.
|
||||
+ -- Will be initialized properly at elaboration (for efficiency later on,
|
||||
+ -- avoid function calls every time we want to reset the attributes) prior
|
||||
+ -- to the first usage. We cannot make it constant since the compiler may
|
||||
+ -- put it in a read-only section.
|
||||
|
||||
function Is_Directory
|
||||
(Name : C_File_Name;
|
||||
@@ -754,22 +770,4 @@ private
|
||||
-- detected, the file being written is deleted, and a fatal error is
|
||||
-- signalled.
|
||||
|
||||
- File_Attributes_Size : constant Natural := 32;
|
||||
- -- This should be big enough to fit a "struct file_attributes" on any
|
||||
- -- system. It doesn't cause any malfunction if it is too big (which avoids
|
||||
- -- the need for either mapping the struct exactly or importing the sizeof
|
||||
- -- from C, which would result in dynamic code). However, it does waste
|
||||
- -- space (e.g. when a component of this type appears in a record, if it is
|
||||
- -- unnecessarily large). Note: for runtime units, use System.OS_Constants.
|
||||
- -- SIZEOF_struct_file_attributes instead, which has the exact value.
|
||||
-
|
||||
- type File_Attributes is
|
||||
- array (1 .. File_Attributes_Size)
|
||||
- of System.Storage_Elements.Storage_Element;
|
||||
- for File_Attributes'Alignment use Standard'Maximum_Alignment;
|
||||
-
|
||||
- Unknown_Attributes : constant File_Attributes := (others => 0);
|
||||
- -- Will be initialized properly at elaboration (for efficiency later on,
|
||||
- -- avoid function calls every time we want to reset the attributes).
|
||||
-
|
||||
end Osint;
|
@ -1,3 +1,4 @@
|
||||
bug89349.patch
|
||||
config.patch
|
||||
misc.patch
|
||||
no_short_enums.patch
|
||||
|
Loading…
x
Reference in New Issue
Block a user