summaryrefslogtreecommitdiff
path: root/ldso/include/dl-syscall.h
AgeCommit message (Collapse)Author
2015-07-11builtin_unreachable is not available for older gccWaldemar Brodkorb
2015-04-13gcc 4.4 does not have __builtin_unreachableWaldemar Brodkorb
For avr32 we still use gcc 4.4 compiler, so exlude the usage of __builtin_unreachable here.
2015-03-29merge uClibc git masterWaldemar Brodkorb
2015-03-26ldso: mark _dl_exit as noreturnBernhard Reutner-Fischer
Otherwise gcc might not understand that oom() ended control-flow and might emit an (untaken) reference to abort() in _dl_update_slotinfo() on e.g. SH4 which breaks linking ld-uClibc.so. Arguably -ffreestanding should prevent GCC from emitting this '.global abort' but alas, it does not, which is another bug.. Also mark the function cold to further lower the incoming frequency and branch probability. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-01-25add support for $ORIGINWaldemar Brodkorb
This is for example required, used and tested with OpenJDK 7. No regressions found, while running the testsuite with embedded-test.
2014-12-28sparc64 support was removed recentlyWaldemar Brodkorb
Remove leftover code.
2013-03-14ldso: Fix Build warnings with common-generic ABI buildVineet Gupta
CC ldso/ldso/ldso.oS In file included from ./ldso/include/ldso.h:47, from ldso/ldso/ldso.c:33: ./ldso/include/dl-syscall.h:35:1: warning: "S_ISUID" redefined In file included from ./include/bits/kernel_stat.h:10, from ./ldso/include/dl-syscall.h:31, from ./ldso/include/ldso.h:47, from ldso/ldso/ldso.c:33: ./include/sys/stat.h:163:1: warning: this is the location of the previous definition In file included from ./ldso/include/ldso.h:47, from ldso/ldso/ldso.c:33: ./ldso/include/dl-syscall.h:36:1: warning: "S_ISGID" redefined In file included from ./include/bits/kernel_stat.h:10, from ./ldso/include/dl-syscall.h:31, from ./ldso/include/ldso.h:47, from ldso/ldso/ldso.c:33: ./include/sys/stat.h:164:1: warning: this is the location of the previous definition ----------------------------------------------------------------- Cleanly seperated the legacy ABI vs. new ABI scenario. Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Cc: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2013-02-20ldso: Use newer syscalls if arch does not have the deprecated syscallsMarkos Chandras
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2012-06-15ldso/include: change guard of headers to reflect the file names.Peter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-10-06ldso: unify pread syscall definitionMike Frysinger
A few arches want pread() defined, so move it to common code. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-10-06ldso: merge duplicate dl-syscalls.h code to common headerMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2011-03-09remove trailing ';' from _syscallX()Peter S. Mazinger
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
2009-11-20remove superfluous extra semicolonsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-15ldso: drop duplicated/unused definesMike Frysinger
We already include bits/fcntl.h for some of these defines, and most of the bits/stat.h defines are unused. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15ldso: unify and cleanup _dl_mmap codeMike Frysinger
The interface should be straight forward now and the same for everyone. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15ldso: define MAP_FAILED for everyoneMike Frysinger
This fixes build errors where common code has started using MAP_FAILED. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-04-09Fix the ifdef logic broken by last commit for !defined (__mcoldfire__)Khem Raj
2009-04-09The attached patches fixes the problems found bringing up uclibc on coldfire Khem Raj
M5485 processor 1. Disable mmap2() if we're compiling for coldfire and fall back to mmap(). It seems to map a different file area on a 2.6.25 linux kernel. 2. Uses pc-relative addresing[1], computes ADDR_ALIGN, PAGE_ALIGN and OFFSET_ALIGN relatively to _dl_pagesize[3]. On coldfire/M5485 _dl_pagesize is 0x2000. Signed-off-by: Groleo Marius <groleo@gmail.com>
2008-09-18Use __always_inline for _dl_gettimeofday as well.Carmelo Amoroso
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-07-23- fix inline keywordBernhard Reutner-Fischer
2008-06-03- Revert _dl_exit touch-up.Bernhard Reutner-Fischer
It breaks on arches that don't define proper/complete/nice syscall facilities.
2008-06-03- adds several config-options to allow for turning off certain featuresBernhard Reutner-Fischer
like o UCLIBC_HAS_GNU_ERROR o UCLIBC_HAS_BSD_ERR o UCLIBC_HAS_PTY o UCLIBC_HAS_GETPT (1) o UCLIBC_SYSCALL_STUBS o UCLIBC_SYSCALL_STUB_WARNING o UCLIBC_LINUX_SPECIFIC (2) o UCLIBC_BSD_SPECIFIC (3) o UCLIBC_NTP_LEGACY (4) o UCLIBC_SV4_DEPRECATED (5) o UCLIBC_HAVE_REALTIME (6) o UCLIBC_HAVE_ADVANCED_REALTIME (7) o UCLIBC_HAVE_EPOLL (8) o UCLIBC_HAVE_XATTR (9) o UCLIBC_HAVE_PROFILING (10) (1) make non-standard getpt optional and implement standard posix_openpt (2) fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(), personality() ppoll(), setresuid() (3) mincore(), getdomainname(), setdomainname() (4) ntp_adjtime(), ntp_gettime() aliases (5) ustat() [use statfs(2) in your code instead] (6) All marked as "(REALTIME)" in SUSv3 (7) All marked as "(ADVANCED REALTIME)" in SUSv3 (8) epoll_create(), epoll_ctl(), epoll_wait() (9) all Extended Attributes (10) helpers for gcc's -finstrument-functions - Fixes _dl_exit() - Implements sleep(3) for !UCLIBC_HAVE_REALTIME - Implements usleep(3) for !UCLIBC_HAVE_REALTIME - adds #warning about incorrect posix_fadvise{,64}() - removes unused and unwanted uselib() Net outcome is that an allnoconfig with HAVE_SHARED is now about 88k instead of formerly 130k.
2007-12-03Some versions of gcc consider inline merely a hint. AVR32 depends on theCarmelo Amoroso
system calls actually being inlined, so AVR32 needs to use __always_inline instead of just inline. The attached patch changes this for the system calls. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
2007-09-15Blue Swirl writes:Mike Frysinger
I got the library to compile with the attached patches, though dynamic loader crashes early. In buildroot I changed the architecture name by hand from sparc to sparc64, otherwise the compiler produced 32-bit files with V9 (64-bit) instructions. This configuration is not supported by QEMU, so I aimed for pure 64-bit. I think Sparc64 option needs to be added to buildroot. The _Qp_ ops seem to be required by the ABI. This and setjmp patches are just hacks to get the compilation further. The _Qp_ ops can be found in glibc, would it be OK to use those? V9 assembler requires declarations for global register use. The mem* functions in sparc32 directory did not work. They are actually used only by the hybrid 32-bit + V9 CPU configuration.
2006-12-06bits/kernel_stat.h is for internal uClibc use only, fix a few otherEric Andersen
minor include file issues
2006-03-23forgotten to update gettimeofday here as wellPeter S. Mazinger
2006-02-23Allow MMAP2_PAGE_SHIFT to be specified by the architecture specificPeter Kjellerstedt
header files.
2006-02-23A little clean up.Peter Kjellerstedt
2006-02-22Nicolas Bellido: switch up order of mmap preference to try and fix arm eabi ↵Mike Frysinger
usage
2006-02-22move _dl_mmap_check_error() to related mmap bits of code as pointed out by ↵Mike Frysinger
Nicolas Bellido
2006-01-30back to inline, mips failsPeter S. Mazinger
2006-01-24- use keywords __asm__ and __inline__ c99.Bernhard Reutner-Fischer
2006-01-20fix building on alphaMike Frysinger
2006-01-19move a bunch of arch-specific checks out of common files and into an arch ↵Mike Frysinger
specific header file to make porting/updates a lot easier
2006-01-14Revert 13276, cache corrupted on x86Peter S. Mazinger
2006-01-14use regular headers rather than trying to get trickyMike Frysinger
2005-11-23change to Lesser GPL 2.1 as pointed out by psmMike Frysinger
2005-11-22add some copyright infoMike Frysinger
2005-10-27Moved guard_setup to dl-osinfo.h (used commonly by ldso and libc). Renamed ↵Peter S. Mazinger
to _dl_setup_stack_chk_guard, as in glibc. SSP requires now binutils-2.16.1 and newer. Add NOT_IN_libc/IS_IN_libc. Began using -DSHARED in uClibc_main.c, there are more candidates in there. Move back dl_protect_relro to it's earlier place.
2005-09-20Make powerpc use sys/syscall.h, instead of defining its own syscalls.Joakim Tjernlund
2005-09-17Fix bug 430 and reduce ldso size with 1KB :). Not sure if I need to use ↵Joakim Tjernlund
fstat64, but I am sure someone will tell me.
2005-08-15Just quote the whole darn thing so we can print any error msg we wantEric Andersen
2005-08-15remove quote char which doesnt belongMike Frysinger
2005-08-15move arch-specific checks out of shared dl-syscall.h and into arch-specific ↵Mike Frysinger
dl-syscalls.h
2005-07-09we need the syscall6() version of mmapMike Frysinger
2005-06-30typecast to long instead of int so pointers on 64bit arches can be typecast ↵Mike Frysinger
safely
2004-06-12Jakub Bogusz from pld-linux dot org writes:Eric Andersen
Hello, I managed to get ldso (and thus shared linking to uClibc) to work on sparc (actually sparc64 kernel with 32-bit userspace), at least on simple "hello world" program (more complex ones not tested). Some notes on attached patch (against 0.9.26, would require some work to apply on current CVS - but I tested 0.9.26, not CVS): - ELF magic cannot be examined by _dl_strncmp so early, probably because of string constant, like on ppc/mips/sh (note that early SEND_STDERR still crashes when trying to do _dl_strlen - I suppose that string constants require relocation; but adding load_addr didn't help, just ELF header was displayed instead of crash) - mmap() is syscall6 like on ppc/mips/sh, not old i386 mmap() - for generic sparc (i.e. not sparcv8/sparcv9) gcc produces .udiv/.urem calls for unsigned integer / and % operators - so these operations must be avoided. I copied do_rem definition from arm header. But / and % are used also in _dl_simple_ltoa() and _dl_simple_ltoahex(); in ltoahex gcc optimizes it to shifts (but I think it's safer to use shifts explicitly, not rely on optimization...). I changed % in ltoa to do_rem, but as there was no do_div definition, I changed all "%d" specifiers to "%x" to avoid crashes (this changes wouldn't be needed if _dl_simple_ltoa() were fixed to not use division on sparc). - "#define SOLARIS_COMPATIBLE" in ld_sysdep.h broke ldso on Linux because of redefining _dl_linux_resolve only in some places (it was still referenced in INIT_GOT before redefinition). So _dl_linux_resolve redefinition should be moved before INIT_GOT definition or removed. - sparc64 kernel requires mmap() addresses to be aligned to 8192, not 4096, otherwise mmap() call failed - reloc_entry must be shifted by 10, not 12 (I found similar operation in glibc sources) Aside of sparc-specific fixes: - I moved some _dl_dprintf()s inside if(_dl_debug_*) conditions (to avoid debugging messages when LD_DEBUG is not defined) - it seems that there was possible off-by-one in ltoa and ltoahex? they are called with char[22] as 1st argument, and then '\0' is stored in local[22] (_before_ p decrementation)... or am I missing something? If not, fix is included in patch.
2004-03-19Based on a patch from Alexandre Oliva, allow uClibc to compileEric Andersen
with __NR_mmap is not available (i.e. only __NR_mmap2)
2004-02-10Rework file naming, aiming for at least a vague level of consistancyEric Andersen
2004-02-10Fixup the definition of _dl_open, and move some bits back where they were,Eric Andersen
till I properly finish the next step in my evil plan.