The latest main tree has split out stackguard-macros.h so we no
longer have to override it with a stub.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Installed headers should always use the forms of attributes with __
prefixes and suffixes, so __attribute__ ((__aligned__ (8))) instead of
the plain "aligned" form, to avoid taking identifiers from the user's
namespace.
URL: http://sourceware.org/bugzilla/show_bug.cgi?id=14109
Reported-by: Joseph Myers <joseph@codesourcery.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Previously we weren't re-aligning the stack pointer during the
call to _dl_init(), so for tilegx32 and an odd value in _dl_skip_args
and kernel unaligned access fixups disabled, we would die with SIGBUS.
We now handle this case properly by aligning before calling _dl_init().
We were multiplying a byte by 0x0101010101010101ULL to create a
constant for SIMD ops, but the compiler isn't good at optimizing
this case (the fact that one operand is a byte is lost by the time
it would be possible to do the optimization). So instead we add
a helper routine that explicitly uses SIMD ops to create the constant.
Although this is not required by the definition of memcpy(),
in practice this sort of thing does happen, and it's easy to make
the code robust by doing nothing in this case. (Since structure
copy causes the compiler to emit a memcpy, in the case where the
target structure is the same as the destination, we were seeing
corruption.)
This patches fixes up the tile startup files, moving elf/start.S up a
directory level and implementing the required crti.S and crtn.S files
based on the old initfini.c compiler output (hand-optimized to bum a
couple of cycles).
We assume ELF everywhere now, so drop support for non-ELF.
Reported-by: Joseph S. Myers <joseph@codesourcery.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The hard-float ABI will now use /lib/ld-linux-armhf.so.3.
We detect the use of the hard-float ABI and select the
appropriate dynamic linker name. You must have a new or
patched compiler which also uses the new dynamic loader
name when the hard-float ABI is selected.
This header uses __set_errno(), so make sure we include errno.h for it.
Otherwise, if INLINE_SYSCALL() is used and errno.h isn't included, we
hit warnings like so:
In file included from libc-start.c:36:0:
../sysdeps/unix/sysv/linux/dl-osinfo.h: In function '_dl_setup_stack_chk_guard':
../sysdeps/unix/sysv/linux/dl-osinfo.h:79:7: warning: implicit declaration of function '__set_errno'
Which culminate in errors like so:
libc-start.c:(.text+0x692): undefined reference to '__set_errno'
libc-start.c:(.text+0x752): undefined reference to '__set_errno'
collect2: ld returned 1 exit status
Reported-by: Dennis Schridde <devurandom@gmx.net>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
For the most part, these are adding symbols from newer glibc releases that
should have been added to ia64 in the first place, but no one noticed.
There were also adding symbols from older versions, but that appears to be
an oversight in the old abilist files where the ia64 tuple wasn't added to
the symbol block.
A few symbols did get deleted, but that looks normal as no other arch has
them, and comparing to an old glibc-2.7 build, things have been this way
for quite a while.
After this, `make check-abi` now passes for ia6.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
These are the abilists as ia64 had them before being removed from the
main tree. Most libs pass, but a bunch need updating. That'll be done
in a follow up commit.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The main tree updated the dl-tls code to use a new GET_ADDR_PARAM macro.
We need to define that to fix a build error due to it missing.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Building a lot of glibc files trigger warnings like so:
.../ucontext.h:52:25: warning: variably modified '_pad' at file scope
The ia64 header protects the use of __builtin_offsetof by a C++
compiler, but this builtin works just fine with C compilers, so
allow it to be used there too.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This applies the same updates that already exist in the main tree for
making the pthread_attr_t union more standards compliant.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
All other ports have __scalbn* aliases pointing back to scalbn*, but
the ia64 code had omitted them. This didn't really matter as none
of the common code called them, but after a recent update, that's no
longer true. Add the aliases needed by some common code to fix link
errors with libm due to them missing.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The main tree dropped support for !__STDC__ code, so drop it from the
few places in the ia64 code too.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The ia64 math code stubs out the existing [er]_rem_*.c files, but the
main tree has added a new one since its removal. Stub out that new
file too.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The main tree decided to drop support for pre-ISO C code, so we
can use "const" instead of "__const".
Processed with a simple sed script:
find `find sysdeps/ -name ia64` -type f -exec sed -i \
's:\<__const\>:const:' {} +
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The main tree decided to change all these includes to <...>, so update
the ia64 code accordingly.
Processed with a simple sed script:
find `find sysdeps/ -name ia64` -type f -exec sed -i \
-r '/include/s:"(math.h|math_private.h)":<\1>:' {} +
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The main tree relocated the _itoa.h header, so update our include
paths to match.
Processed with a simple sed script:
find `find sysdeps/ -name ia64` -type f -exec sed -i \
'/<stdio-common._itoa.h>/s:<stdio-common/_itoa.h>:<_itoa.h>:' {} +
Signed-off-by: Mike Frysinger <vapier@gentoo.org>