diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-18 00:58:35 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-18 00:58:35 +0100 |
commit | 49a086299e047b18280457b654790ef4a2e5abfa (patch) | |
tree | c2b29e0734d560ce4f58c6945390650b5cac8a1b /open_issues/ifunc.mdwn | |
parent | e2b3602ea241cd0f6bc3db88bf055bee459028b6 (diff) | |
download | web-49a086299e047b18280457b654790ef4a2e5abfa.tar.gz web-49a086299e047b18280457b654790ef4a2e5abfa.tar.bz2 web-49a086299e047b18280457b654790ef4a2e5abfa.zip |
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.mdwn | 49 |
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"]]. |