[gcc r16-9301] libiberty, Darwin: Read dylibs too

Pietro Monteiro via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:6b8e90b02f68ebe27c4a069c6f4b08191e285116

commit r16-9301-g6b8e90b02f68ebe27c4a069c6f4b08191e285116
Author: Pietro Monteiro <[email protected]>
Date:   Tue Jun 9 11:20:09 2026 -0400

    libiberty, Darwin: Read dylibs too
    
    The Algol 68 frontend adds a section with information on exported
    modes and procedures to libraries and object files.  Instead of
    erroring out when encountering a Mach-O library keep reading it so the
    frontend can find the exports section.
    
    libiberty/ChangeLog:
    
            * simple-object-mach-o.c (MACH_O_MH_DYLIB): New definition.
            (simple_object_mach_o_match): Accept dylibs as well as object files.
    
    Signed-off-by: Pietro Monteiro <[email protected]>
    (cherry picked from commit f746787e2c347585110765ac8bd2bd0b6bf4413b)

Diff:
---
 libiberty/simple-object-mach-o.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libiberty/simple-object-mach-o.c b/libiberty/simple-object-mach-o.c
index 0897a3edf7d5..f7d54889976e 100644
--- a/libiberty/simple-object-mach-o.c
+++ b/libiberty/simple-object-mach-o.c
@@ -78,6 +78,7 @@ struct mach_o_header_64
 /* For filetype field in header.  */
 
 #define MACH_O_MH_OBJECT		0x01
+#define MACH_O_MH_DYLIB			0x06
 
 /* A Mach-O file is a list of load commands.  This is the header of a
    load command.  */
@@ -312,9 +313,9 @@ simple_object_mach_o_match (
   b = &buf[0];
 
   filetype = (*fetch_32) (b + offsetof (struct mach_o_header_32, filetype));
-  if (filetype != MACH_O_MH_OBJECT)
+  if (!(filetype == MACH_O_MH_OBJECT || filetype == MACH_O_MH_DYLIB))
     {
-      *errmsg = "Mach-O file is not object file";
+      *errmsg = "Mach-O file is neither object file nor dylib";
       *err = 0;
       return NULL;
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.