summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-08-25 23:15:13 -0400
committerRich Felker <dalias@aerifal.cx>2012-08-25 23:15:13 -0400
commit9bff7c133e73ecfb200614d7a7d386a164a1a61f (patch)
tree79941a40c606ca444994d0066524024f952f3698 /include
parentb5289fd749bc4d2637610d712f8fe650f214f1d5 (diff)
downloadmusl-9bff7c133e73ecfb200614d7a7d386a164a1a61f.tar.gz
musl-9bff7c133e73ecfb200614d7a7d386a164a1a61f.tar.bz2
musl-9bff7c133e73ecfb200614d7a7d386a164a1a61f.tar.xz
musl-9bff7c133e73ecfb200614d7a7d386a164a1a61f.zip
implement "low hanging fruit" from C11
based on Gregor's patch sent to the list. includes: - stdalign.h - removing gets in C11 mode - adding aligned_alloc and adjusting other functions to use it - adding 'x' flag to fopen for exclusive mode
Diffstat (limited to 'include')
-rw-r--r--include/stdalign.h15
-rw-r--r--include/stdio.h2
-rw-r--r--include/stdlib.h1
3 files changed, 18 insertions, 0 deletions
diff --git a/include/stdalign.h b/include/stdalign.h
new file mode 100644
index 00000000..b6e50aeb
--- /dev/null
+++ b/include/stdalign.h
@@ -0,0 +1,15 @@
+#ifndef _STDALIGN_H
+#define _STDALIGN_H
+
+/* this whole header only works in C11 or with compiler extensions */
+#if __STDC_VERSION__ < 201112L && defined( __GNUC__)
+#define _Alignas(t) __attribute__((__aligned__(t)))
+#define _Alignof(t) __alignof__(t)
+#endif
+
+#define alignas _Alignas
+#define alignof _Alignof
+#define __alignas_is_defined 1
+#define __alignof_is_defined 1
+
+#endif
diff --git a/include/stdio.h b/include/stdio.h
index 19ab8bcd..9aa2f782 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -90,7 +90,9 @@ int putc(int, FILE *);
int putchar(int);
char *fgets(char *, int, FILE *);
+#if __STDC_VERSION__ < 201112L
char *gets(char *);
+#endif
int fputs(const char *, FILE *);
int puts(const char *);
diff --git a/include/stdlib.h b/include/stdlib.h
index c1d93e71..1749cb3b 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -38,6 +38,7 @@ void *malloc (size_t);
void *calloc (size_t, size_t);
void *realloc (void *, size_t);
void free (void *);
+void *aligned_alloc(size_t alignment, size_t size);
void abort (void);
int atexit (void (*) (void));