Fix stack size and address inconsistency due to executable stack
When a stack is marked executable due to loading a DSO that requires
an executable stack, the logic tends to leave out a portion of stack
after the first frame, thus causing a difference in the value returned
by pthread_getattr_np before and after the stack is marked
executable. It ought to be possible to fix this by marking the rest of
the stack as executable too, but in the interest of marking as less of
the stack as executable as possible, the path this fix takes is to
make pthread_getattr_np also look at the first frame as the underflow
end of the stack and compute size and stack top accordingly.
The above happens only for the main process stack. NPTL thread stacks
are not affected by this change.
Paul Eggert [Fri, 16 Mar 2012 10:14:03 +0000 (03:14 -0700)]
mktime: do not assume signed right shift propagates sign bit
* time/mktime.c (isdst_differ): New static function.
(__mktime_internal): No need to normalize tm_isdst now.
(__mktime_internal, not_equal_tm): Use isdst_differ to compare
tm_isdst values.
Paul Eggert [Fri, 16 Mar 2012 10:00:48 +0000 (03:00 -0700)]
mktime: remove incorrect attempt at unusual arithmetics
* time/mktime.c (TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove.
The code didn't really work on such machines anyway.
(TYPE_MINIMUM): Assume two's complement.
(twos_complement_arithmetic): Verify that long_int and time_t
are two's complement (or unsigned, in the latter case).
Paul Eggert [Fri, 16 Mar 2012 09:48:38 +0000 (02:48 -0700)]
mktime: do not assume 'long' is wide enough
* time/mktime.c (verify): Move decl up.
(long_int): New type.
(leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it,
to remove assumption in the code that 'long' is wide enough to
store year values. This assumption is not true on x32 and on
some non-glibc platforms.
Paul Eggert [Fri, 16 Mar 2012 09:36:14 +0000 (02:36 -0700)]
mktime: merge wrapv change from gnulib
* time/mktime.c (WRAPV): New macro.
(time_t_avg, time_t_add_ok, time_t_int_add_ok): New static functions.
(guess_time_tm, __mktime_internal): Do not assume that signed
integer overflow wraps around; modern compilers generate code
where this assumption is no longer valid.
Andreas Jaeger [Mon, 21 May 2012 20:27:11 +0000 (22:27 +0200)]
Fix warnings in wcschr-c.c
Fixes:
In file included from ../sysdeps/i386/i686/multiarch/wcschr-c.c:8:0:
../wcsmbs/wcschr.c:26:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
../wcsmbs/wcschr.c:37:1: warning: data definition has no type or storage class [enabled by default]
../wcsmbs/wcschr.c:37:1: warning: type defaults to ‘int’ in declaration of ‘__hidden_ver1’ [enabled by default]
../wcsmbs/wcschr.c:37:1: warning: parameter names (without types) in function declaration [enabled by default]
Andreas Jaeger [Mon, 21 May 2012 18:41:36 +0000 (20:41 +0200)]
[BZ #13691], Revert breakage of iconv() converter for TCVN-5712.
* iconvdata/tcvn5712-1.c (BODY for FROM_LOOP): Don't consider
inptr and inend for must_buffer_ch.
* wcsmbs/tst-mbsnrtowcs.c: Remove file.
* wcsmbs/Makefile (tests): Remove tst-mbsnrtowcs.
* stdio-common/Makefile (tests): Remove bug15.
(bug15-ENV): Remove macro.
* stdio-common/bug15.c: Remove, we do not support vi_VN.TCVN5712-1
anymore.
localedata:
* SUPPORTED: Remove vi_VN.TCVN/TCVN5712-1.
* tst-strptime.c: Remove, we do not support vi_VN.TCVN5712-1
anymore.
* Makefile (LOCALES): Remove vi_VN.TCVN5712-1 from list.
(tests): Remove tst-strptime.
[PowerPC] Remove -ftree-loop-linear from Makefiles
In the past the "-ftree-loop-linear" switch provided a measurable
improvement in performance for certain functions. At some point it
was assigned as the responsibility of Graphite in GCC. It has been
found that even with Graphite enabled these flags no longer perform
any appreciable improvement over the baseline.
Graphite now has some open bugs which need to be fixed in order for it
to provide measurable performance improvements but it lacks active
development. As a result some compiler distributors may disable
Graphite. If Graphite is disabled then building GLIBC will fail if
the "-ftree-loop-linear" switch is used.
This patch removes the use of "-ftree-loop-linear" as unnecessary.