diff --git a/lib/libc/include/any-macos-any/mach-o/getsect.h b/lib/libc/include/any-macos-any/mach-o/getsect.h new file mode 100644 index 0000000000..c51ca5bc1b --- /dev/null +++ b/lib/libc/include/any-macos-any/mach-o/getsect.h @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2004 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ +#ifndef _MACH_O_GETSECT_H_ +#define _MACH_O_GETSECT_H_ + +#include +#include +#include +#include + +#ifndef __CCTOOLS_DEPRECATED + #define __CCTOOLS_DEPRECATED __API_DEPRECATED("No longer supported", macos(10.0, 13.0), ios(1.0, 16.0), watchos(1.0, 8.0), tvos(1.0, 16.0)) + #define __CCTOOLS_DEPRECATED_MSG(_msg) __API_DEPRECATED_WITH_REPLACEMENT(_msg, macos(10.0, 13.0), ios(1.0, 16.0), watchos(1.0, 8.0), tvos(1.0, 16.0)) +#endif + + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* + * Runtime interfaces for Mach-O programs. For both 32-bit and 64-bit programs, + * where the sizes returned will be 32-bit or 64-bit based on the size of + * 'unsigned long'. + */ +extern char *getsectdata( + const char *segname, + const char *sectname, + unsigned long *size) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +extern char *getsectdatafromFramework( + const char *FrameworkName, + const char *segname, + const char *sectname, + unsigned long *size) __CCTOOLS_DEPRECATED; + +extern unsigned long get_end(void) __CCTOOLS_DEPRECATED; +extern unsigned long get_etext(void) __CCTOOLS_DEPRECATED; +extern unsigned long get_edata(void) __CCTOOLS_DEPRECATED; + +#ifndef __LP64__ +/* + * Runtime interfaces for 32-bit Mach-O programs. + */ +extern const struct section *getsectbyname( + const char *segname, + const char *sectname) __CCTOOLS_DEPRECATED_MSG("use getsectiondata(&__dso_handle,)"); + +extern uint8_t *getsectiondata( + const struct mach_header *mhp, + const char *segname, + const char *sectname, + unsigned long *size); + +extern const struct segment_command *getsegbyname( + const char *segname) __CCTOOLS_DEPRECATED; + +extern uint8_t *getsegmentdata( + const struct mach_header *mhp, + const char *segname, + unsigned long *size); + +#else /* defined(__LP64__) */ +/* + * Runtime interfaces for 64-bit Mach-O programs. + */ +extern const struct section_64 *getsectbyname( + const char *segname, + const char *sectname); + +extern uint8_t *getsectiondata( + const struct mach_header_64 *mhp, + const char *segname, + const char *sectname, + unsigned long *size); + +extern const struct segment_command_64 *getsegbyname( + const char *segname) __CCTOOLS_DEPRECATED; + +extern uint8_t *getsegmentdata( + const struct mach_header_64 *mhp, + const char *segname, + unsigned long *size); + +#endif /* defined(__LP64__) */ + +/* + * Interfaces for tools working with 32-bit Mach-O files. + */ +extern char *getsectdatafromheader( + const struct mach_header *mhp, + const char *segname, + const char *sectname, + uint32_t *size) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +extern const struct section *getsectbynamefromheader( + const struct mach_header *mhp, + const char *segname, + const char *sectname) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +extern const struct section *getsectbynamefromheaderwithswap( + struct mach_header *mhp, + const char *segname, + const char *sectname, + int fSwap) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +/* + * Interfaces for tools working with 64-bit Mach-O files. + */ +extern char *getsectdatafromheader_64( + const struct mach_header_64 *mhp, + const char *segname, + const char *sectname, + uint64_t *size) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +extern const struct section_64 *getsectbynamefromheader_64( + const struct mach_header_64 *mhp, + const char *segname, + const char *sectname) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +extern const struct section *getsectbynamefromheaderwithswap_64( + struct mach_header_64 *mhp, + const char *segname, + const char *sectname, + int fSwap) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()"); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _MACH_O_GETSECT_H_ */ diff --git a/lib/libc/include/any-macos-any/mach/exception.h b/lib/libc/include/any-macos-any/mach/exception.h new file mode 100644 index 0000000000..7baea70343 --- /dev/null +++ b/lib/libc/include/any-macos-any/mach/exception.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ + +#ifndef _MACH_EXCEPTION_H_ +#define _MACH_EXCEPTION_H_ + +#include + +#endif /* _MACH_EXCEPTION_H_ */ diff --git a/tools/macos-headers.c b/tools/macos-headers.c index 024a29064c..d7a9fc1be9 100644 --- a/tools/macos-headers.c +++ b/tools/macos-headers.c @@ -124,6 +124,7 @@ // macOS system headers #include +#include #include #include #include @@ -196,6 +197,9 @@ #include #include +// Depended on by bdwgc +#include + // Provided by macOS LibC #include #include