Age | Commit message (Collapse) | Author |
|
It is deemed too unsafe. Quoting Timo:
If I'm building with "-fPIC -pg" it instruments all C functions with
profiler stuff which is called via PLT and causes EBX reloads
--> crash
-fno-omit-frame-pointer is sometimes useful for profiling too
--> crash
Also the upcoming -fsplit-stack will be broken by this too (that might
need additional uclibc support though).
And I'm pretty sure there's also other similar compiler features.
There's no predefined #defines in gcc for any of these.
What I'm trying to say that there are *numerous* situations when the
compiler can create stack frame for you without you ever knowing it. And
if you want to do a tail jump, you really should be doing it from .S
file where you control fully the prologue/epilogue code. (GCC naked
attribute does not seem to work on x86.)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Thanks, Timo!
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
break it
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
GCC can emit prologue/epilogue code for the functions in various
different cases:
- frame pointers
- PIC build (to load ebx for indirect calls/jumps)
- forced stack smashing protection
If we used jump in such cases, we'd corrupt the call stack and
crash.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
to avoid shadow warnings
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
(cherry picked from commit f331f6d2eff5fb623bcc42213ccec12c7dbf95fd)
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
This reverts commit 73d6e5c41b61633e22ea74e3aa2df721512dca57.
barking up the wrong tree
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
alias l to their normal double counterparts.
Works around problems with libgcc blindly calling __finitel on e.g. ppc32
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
This fixes compilation errors on hosts that turn off long double support
for C99 like powerpc32.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
so that it is easier to modify, sort, etc;
use __ in filenames of wrappers which wrap __functions
(it may be useful to have function and file names ALWAYS match);
remove names of not implemented wrappers (it was generating useless
empty .o files).
libm/ldouble_wrappers.c: comment out the wrapper which is
not compiled anyway
test/math/compile_test.c: improve this test, it was optimizing out some calls,
and we don't want that.
No actual code changes.
|
|
*: fix everything which prevents above from building
|
|
|
|
float_wrappers.c: add xxxWRAPPER1(func) macros. no code changes,
but makes this file much shorter.
text data bss dec hex filename
- 42504 188 4 42696 a6c8 lib/libm-0.9.30-svn.so
+ 42488 188 4 42680 a6b8 lib/libm-0.9.30-svn.so
|
|
-83 ec 10 sub $0x10,%esp
-db 6c 24 14 fldt 0x14(%esp)
-dd 5c 24 08 fstpl 0x8(%esp)
-dd 44 24 08 fldl 0x8(%esp)
-dd 1c 24 fstpl (%esp)
-e8 fc ff ff ff call __GI_trunc
-83 c4 10 add $0x10,%esp
+db 6c 24 04 fldt 0x4(%esp)
+dd 5c 24 04 fstpl 0x4(%esp)
+e9 fc ff ff ff jmp __GI_trunc
c3 ret
text data bss dec hex filename
- 42749 176 4 42929 a7b1 lib/libm-0.9.30-svn.so
+ 42085 176 4 42265 a519 lib/libm-0.9.30-svn.so
|
|
remove wrong casts to long double of long return values.
remove lots of empty lines.
|
|
test/Rules.mak: don't pass target options to host build
test/math/basic-test.c: fix test build error
patching file test/unistd/errno.c: fix test build warning
|
|
|
|
math support
- add rule to create preprocessor output for float- and long double math wrapper
|
|
fix uclibc build if it is forcibly enabled
|
|
|