aboutsummaryrefslogtreecommitdiff
path: root/tools/build/cross-build/include/linux/stdlib.h
diff options
context:
space:
mode:
authorAlex Richardson <arichardson@FreeBSD.org>2020-08-25 13:18:53 +0000
committerAlex Richardson <arichardson@FreeBSD.org>2020-08-25 13:18:53 +0000
commitd1d32c3dc490f7c8982e1fab945f8f8767e0edb3 (patch)
tree83a1866f01a01bc7af647bb8912a7f90350eeca6 /tools/build/cross-build/include/linux/stdlib.h
parent1951fa791e2ab9543be1a26c25cf15dd96ff3f3f (diff)
downloadsrc-d1d32c3dc490f7c8982e1fab945f8f8767e0edb3.tar.gz
src-d1d32c3dc490f7c8982e1fab945f8f8767e0edb3.zip
Add Linux/macOS compatibility system headers to tools/build/cross-build
These headers are required in order to build the bootstrap tools on macOS and Linux. A follow-up commit will add implementations of functions that don't exist on those operating systems to -legacy when bootstrapping. Reviewed By: brooks Differential Revision: https://reviews.freebsd.org/D14316
Notes
Notes: svn path=/head/; revision=364757
Diffstat (limited to 'tools/build/cross-build/include/linux/stdlib.h')
-rw-r--r--tools/build/cross-build/include/linux/stdlib.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/tools/build/cross-build/include/linux/stdlib.h b/tools/build/cross-build/include/linux/stdlib.h
new file mode 100644
index 000000000000..9e0c1de02ccb
--- /dev/null
+++ b/tools/build/cross-build/include/linux/stdlib.h
@@ -0,0 +1,76 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018-2020 Alex Richardson <arichardson@FreeBSD.org>
+ *
+ * This software was developed by SRI International and the University of
+ * Cambridge Computer Laboratory (Department of Computer Science and
+ * Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), as part of the
+ * DARPA SSITH research programme.
+ *
+ * This software was developed by SRI International and the University of
+ * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
+ * ("CTSRD"), as part of the DARPA CRASH research programme.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+#pragma once
+#include <sys/cdefs.h>
+
+#include_next <stdlib.h>
+
+#ifndef __GLIBC_PREREQ
+#define __GLIBC_PREREQ(min, maj) 0
+#endif
+
+__BEGIN_DECLS
+/* Add the getcap functions */
+char *cgetcap(char *, const char *, int);
+int cgetclose(void);
+int cgetent(char **, char **, const char *);
+int cgetfirst(char **, char **);
+int cgetmatch(const char *, const char *);
+int cgetnext(char **, char **);
+int cgetnum(char *, const char *, long *);
+int cgetset(const char *);
+int cgetstr(char *, const char *, char **);
+int cgetustr(char *, const char *, char **);
+
+const char *getprogname(void);
+void setprogname(const char *progname);
+
+void *reallocarray(void *, size_t, size_t) __result_use_check
+ __alloc_size2(2, 3);
+void *reallocf(void *, size_t) __result_use_check __alloc_size(2);
+
+unsigned arc4random(void);
+void arc4random_buf(void *, size_t);
+unsigned arc4random_uniform(unsigned);
+
+long long strtonum(const char *, long long, long long, const char **);
+
+int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
+int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
+
+__END_DECLS