summaryrefslogtreecommitdiff
path: root/libgcompat/alias.h
diff options
context:
space:
mode:
authorA. Wilcox <awilcox@wilcox-tech.com>2019-01-08 01:54:00 +0000
committerA. Wilcox <awilcox@wilcox-tech.com>2019-01-08 01:54:00 +0000
commit70add83428603fe757098a9531a22e611a759017 (patch)
tree9a6b8cb275db8d142924eabc82ec9204a55ae5f9 /libgcompat/alias.h
parente97935b9c3b3c745d6264f9fad8afd912dbd366d (diff)
parentd186323a2db1f8bf65b24236ce8d2ddff1b4385a (diff)
downloadgcompat-70add83428603fe757098a9531a22e611a759017.tar.gz
gcompat-70add83428603fe757098a9531a22e611a759017.tar.bz2
gcompat-70add83428603fe757098a9531a22e611a759017.tar.xz
gcompat-70add83428603fe757098a9531a22e611a759017.zip
Merge branch 'patch-4' into 'master'
New kernel compatibility; obstack; pthread_getname_np The gcompat loader compiled as a static binary doesn't work on Linux since [a4ff8e8620d3f4](https://github.com/torvalds/linux/commit/a4ff8e8620d3f4f50ac4b41e8067b7d395056843), failing with an error like: ``` [349055.473655] 13325 (cmake): Uhuuh, elf segment at 0000000000400000 requested but the memory is mapped already ``` This is because the actual binary we want to run is also loaded at 0x400000. While it's actually okay to overlap the binary, since we're going to call `execve` again, the kernel doesn't allow the overlap anymore. Fix that by compiling the loader as static PIE, so it can be put at a different address. Also add `pthread_getname_np` and the option to link `obstack`. See merge request !4
Diffstat (limited to 'libgcompat/alias.h')
-rw-r--r--libgcompat/alias.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libgcompat/alias.h b/libgcompat/alias.h
index 3f54672..bb99690 100644
--- a/libgcompat/alias.h
+++ b/libgcompat/alias.h
@@ -1,9 +1,9 @@
#ifndef _ALIAS_H_
#define _ALIAS_H_
-#define alias(old, new) \
+#define alias(old, new) \
extern __typeof(old) new __attribute__((__alias__(#old)))
-#define weak_alias(old, new) \
+#define weak_alias(old, new) \
extern __typeof(old) new __attribute__((weak, __alias__(#old)))
#endif /* _ALIAS_H_ */