Age | Commit message (Collapse) | Author |
|
issue with gcc 12
The current definition of __WCHAR_MIN and __WCHAR_MAX are only correct
when wchar_t is an int. This is not the case on ARM/AArch64 where
wchar_t is an unsigned int, or some other architectures where wchar_t
is a long.
The current incorrect definition causes a build issue for example when
building mpd, which uses boost, with gcc 12.x:
In file included from /home/thomas/buildroot/aarch64/host/aarch64-buildroot-linux-uclibc/sysroot/usr/include/boost/integer.hpp:20,
from /home/thomas/buildroot/aarch64/host/aarch64-buildroot-linux-uclibc/sysroot/usr/include/boost/crc.hpp:42,
from ../src/storage/StorageState.cxx:43:
/home/thomas/buildroot/aarch64/host/aarch64-buildroot-linux-uclibc/sysroot/usr/include/boost/integer_traits.hpp:105:69: error: narrowing conversion of ‘-2147483648’ from ‘int’ to ‘wchar_t’ [-Wnarrowing]
105 | public detail::integer_traits_base<wchar_t, WCHAR_MIN, WCHAR_MAX>
| ^
This issue was fixed in glibc in 2013, see bug report
https://sourceware.org/bugzilla/show_bug.cgi?id=15036, and upstream
commit
https://sourceware.org/git/?p=glibc.git;a=commit;h=052aff95782fefe9c63566471063e8b20836bfb8.
Since the i386-specific definition of __WCHAR_MIN and __WCHAR_MAX was
also removed at the same time in glibc, we do the same as part of this
commit.
Reported-by: Clément Ramirez <clement.ramirez@bootlin.com>
With-some-useful-help-from: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
Since Linux 3.11, O_TMPFILE allows to create unnamed files that can be
linked later on. It is internally defined as (O_TMPFILE | O_DIRECTORY)
to make it fail on old kernels.
Copying definitions from glibc for O_TMPFILE is not enough to support
O_TMPFILE; The open() wrapper also need to pass the mode when the flag
contains O_TMPFILE, otherwise, it will pass mode 000 which will succeed
but yield unexpected results.
openat() is curiously not affected since it passes the mode
unconditionally..
Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
|
|
The F_DUPFD_CLOEXEC flag was added in POSIX 2008.09.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
|
|
Rename various spare fields in structs to include a namespace
This should avoid accidental clashes with uses of the __unused symbol
in upstream projects. eg currently it causes a compile error in dhcpcd 8.x
due to their re-use of the __unused symbol as a macro
This follows the style of glibc which does something equivalent
|
|
Similar to glibc commit
https://sourceware.org/git/?p=glibc.git;a=commit;h=6bbfc5c09fc5b5e3d4a0cddbbd4e2e457767dae7
we need to handle Linux kernel change, which removed stat64 family from default syscall set.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Waldemar Brodkorb <wbrodkorb@conet.de>
|
|
Sync with GNU C library and consolidate duplicate non
architecture specific defines.
MAP_UNINITIALIZED is only defined to 0x4000000 and used by
the Linux kernel when CONFIG_MMAP_ALLOW_UNINITIALIZED is enabled.
CONFIG_MMAP_ALLOW_UNINITIALIZED is only available for nommu.
See Documentation/nommu-mmap.txt.
|
|
Sync with GNU C library. Found while trying to compile
linux-rdma to uClibc-ng.
Reported-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
|
|
implementation
Signed-off-by: mirabilos <m@mirbsd.org>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
|
(still same implementation though)
Signed-off-by: mirabilos <m@mirbsd.org>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
|
Signed-off-by: mirabilos <m@mirbsd.org>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
|
A single test with targeting ARM showed that this feature
seems bit rotted. Remove DOMULTI and simplify Makefiles.
|
|
Only alpha, hppa and sparc need non-default value.
|
|
.globl can be used for every architecture so remove the define.
Sync with GNU C library.
|
|
It's even no longer required for non-ported ppc64
architecture. Sync with GNU C library.
This simplify the macros in include/libc-symbols.h.
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
The reason truncate64 takes 4 args on some arches is that their ABI
requires 64bit values to be aligned on register pair boundaries.
Since this alignment affects more than just truncate64, rename the
define to properly document its purpose. This also allows us to
expand it to the other impacted syscalls (which will be done in a
follow up commit).
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
This drops __signed, __volatile, and __const. Only the latter was
used in the code base, and for uClibc, not consistently. Much of
the code used plain "const" which meant "__const" was useless.
Really, the point of this is to stay in sync with what glibc did.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
This matches a similar change made to glibc.
No functional changes here.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various
exported header files were updated to use these new types. Add the
definitions for __kernel_long_t and __kernel_ulong_t to the relevant
kernel_types.h headers.
This change was automated with the following scriptlet
git grep --name-only 'typedef.*__kernel_old_dev_t' \
| xargs sed -i '/typedef.*__kernel_old_dev_t/ a\
typedef long\t\t__kernel_long_t;\
typedef unsigned long\t__kernel_ulong_t;'
Whitespace in arm, avr32, hppa, sparc was then manually fixed up.
Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
--
Here's a cleaned up patch which should get the whitespace right. I'm a
bit iffy about the sparc changes they make sense to me but it's not a
platform I have access to.
I can break this up per arch or per maintainer if requested.
libc/sysdeps/linux/alpha/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/arm/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/avr32/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/bfin/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/c6x/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/cris/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/e1/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/h8300/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/hppa/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/i386/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/ia64/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/m68k/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/microblaze/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/mips/bits/kernel_types.h | 4 ++++
libc/sysdeps/linux/nios2/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/powerpc/bits/kernel_types.h | 4 ++++
libc/sysdeps/linux/sh/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/sh64/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/sparc/bits/kernel_types.h | 4 ++++
libc/sysdeps/linux/v850/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/x86_64/bits/kernel_types.h | 2 ++
libc/sysdeps/linux/xtensa/bits/kernel_types.h | 2 ++
22 files changed, 50 insertions(+)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Allow use of immedate values as the 6th syscall argument. Otherwise we must
store the arg on memory. This gives gcc more options to optimize better.
This also works around an issue with posix_fallocate.
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
relevant only for gcc < 3.3 or non-gcc compiler
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Make sure we use the new jmpbuf-*.h headers
While there, adapt the offset on microblaze and the _JMPBUF_UNWINDS macro on bfin,
it seems, these were changed in the meantime.
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
|
|
See GCC PR47577; TODO: Remove them.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
Conflicts:
libc/misc/utmp/utent.c
libc/sysdeps/linux/i386/bits/syscalls.h
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
so far
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
constraints
Example: time() doesn't push/pop two registers now, and is smaller:
<__GI_time>:
-57 push %edi
-8b 7c 24 08 mov 0x8(%esp),%edi
-53 push %ebx
-89 fb mov %edi,%ebx
+8b 4c 24 04 mov 0x4(%esp),%ecx
+87 cb xchg %ecx,%ebx
b8 0d 00 00 00 mov $0xd,%eax
cd 80 int $0x80
-5b pop %ebx
-5f pop %edi
+87 cb xchg %ecx,%ebx
c3 ret
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
Most ports have the same exact mman bit defines, so let's unify things
like the linux kernel has with the asm-generic efforts.
A few ports are left behind as they are non-trivial to merge -- the arch
maintainers can tackle it if they care.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
* RESET_PID support for clone.S
* SAVE_PID, RESTORE_PID in vfork.S
* fixup syscall assembly constraints to be a little less restrictive
allows arbitrary variables to be used as the syscall nr
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
The common define has the same behavior, just formatted differently.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h
headers, and import __ASSUME_O_CLOEXEC from glibc.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
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>
|
|
Fill out the stat structure so that the nanosecond resolution support is
always available. There is a small code size increase for a few ports
(three additional assignments in xstatconv), but otherwise everything
should remain the same.
While we're here, punt __old_kernel_stat from the few headers that still
define it as it is unused in uClibc and causes compile errors after these
nanosecond changes.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
The majority of the byteswap functions are the same across all arches, so
setup a common header to provide definitions if they don't exist. This
allows arches to override only the ones they actually want to implement
with inline assembly.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Undo my old mistake. I added UCLIBC_INTERNAL define,
but later I realized _LIBC is doing exactly the same thing.
This change converts all usages of UCLIBC_INTERNAL to _LIBC,
removing all instances of UCLIBC_INTERNAL.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Declare common NCS (non-constant syscall) variants and convert the existing
ports over to this.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Unify all the common syscall defines in syscalls-common.h and scrub all
the duplicated code from relevant ports. This should also make converting
existing ports to INLINE_SYSCALL() much easier as they don't have to get
lost in all the unrelated noise, as well as creating new ports.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Make sure each arch has the same complete list to make comparing between
them easier.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
ustat: same, + remove superfluous "conversion"
which does nothing at best, loses high dev bits at worst
i386/bits/kernel_stat.h: update to reflect reality (wider dev_t)
h8300/bits/kernel_stat.h: same
arm/bits/kernel_stat.h: cosmetics to match kernel header to the letter
|
|
update example
libc/sysdeps/linux/i386/bits/mathinline.h:
improve __finite() macro, add __finitef macro
(why they aren't always macros? why aren't they arch independent?)
libm/math_private.h:
much better comments on math_opt_barrier() and math_force_eval()
libm/s_finite[f].c:
improve out-of-line __finite[f]() too (one byte less, yay...)
|
|
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
|
|
with linux >= 2.6.28)
|