summaryrefslogtreecommitdiff
path: root/open_issues/ifunc.mdwn
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-18 00:58:35 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-02-18 00:58:35 +0100
commit49a086299e047b18280457b654790ef4a2e5abfa (patch)
treec2b29e0734d560ce4f58c6945390650b5cac8a1b /open_issues/ifunc.mdwn
parente2b3602ea241cd0f6bc3db88bf055bee459028b6 (diff)
Revert "rename open_issues.mdwn to service_solahart_jakarta_selatan__082122541663.mdwn"
This reverts commit 95878586ec7611791f4001a4ee17abf943fae3c1.
Diffstat (limited to 'open_issues/ifunc.mdwn')
-rw-r--r--open_issues/ifunc.mdwn49
1 files changed, 49 insertions, 0 deletions
diff --git a/open_issues/ifunc.mdwn b/open_issues/ifunc.mdwn
new file mode 100644
index 00000000..c357c99c
--- /dev/null
+++ b/open_issues/ifunc.mdwn
@@ -0,0 +1,49 @@
+[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_binutils open_issue_gcc open_issue_glibc]]
+
+Needs porting / support in [[/binutils]] and [[/glibc]], and then some target
+configure magic for [[/GCC]].
+
+<http://nickclifton.livejournal.com/6612.html> has a short summary about how to
+use it from GCC.
+
+ * binutils
+
+ Already passes the ifunc testsuite bits for GAS, but notably for LD
+ (`ld/testsuite/ld-ifunc/ifunc.exp`), too, but that one contains a bunch of
+ stuff explicitly tailored towards Linux. For example, we get *OS/ABI: UNIX
+ - Linux*. (This should be fixed through using [[toolchain/ELFOSABI_GNU]].)
+
+ Most of the executables that the testsuite generates don't actually
+ execute. (Though, this is partly due to the [[static
+ issue|binutils#static]].)
+
+ $ tmpdir/local_prog
+ ifunc working correctly
+ $ tmpdir/static_prog
+ Killed
+ $ tmpdir/dynamic_prog
+ tmpdir/dynamic_prog: error while loading shared libraries: ./tmpdir/libshared_ifunc.so: ELF file OS ABI invalid
+ $ tmpdir/static_nonifunc_prog
+ Killed
+ $ tmpdir/test-1
+ tmpdir/test-1: error while loading shared libraries: tmpdir/libshared_ifunc.so: ELF file OS ABI invalid
+
+ * [[glibc]]
+
+ * [[libc_variant_selection]]
+
+ * [[GCC]]
+
+ In `gcc/config.gcc`, set `default_gnu_indirect_function=yes` for us, like
+ done for GNU/Linux. See thread starting at [[!message-id
+ "CAFULd4YZsAQ6ckFjXtU5-yyv=3tYQwTJOPhU9zmJxFOrnotj8g@mail.gmail.com"]].