forked from pool/glibc
Accepting request 144726 from home:a_jaeger:my-factory-packages
Update to current git head. OBS-URL: https://build.opensuse.org/request/show/144726 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=245
This commit is contained in:
parent
eff14db743
commit
8ebaf69bf2
3
glibc-2.16.90-56e7d3ad5c2f.tar.xz
Normal file
3
glibc-2.16.90-56e7d3ad5c2f.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3bbe236fe37232839b0232f826b4cbadd09d688cabc63530a6d124a9039d2378
|
||||
size 11132824
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f470c705a84e326a17e07c600897bd7ad9a5a23a7a42c8c640cf7399a35f6390
|
||||
size 11157404
|
@ -1,198 +0,0 @@
|
||||
This reverts the following patch from upstream PR 12724,
|
||||
which can cause surprising changes in fclose behaviour when multiple
|
||||
file handles refer to the same file (fclose on one changes file position
|
||||
on the other).
|
||||
See bnc #711829.
|
||||
|
||||
git diff -R 'fcabc0f8b185f9e0a9289720be5ede6c39b3bf21^!'
|
||||
|
||||
2011-05-13 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
[BZ #12724]
|
||||
* libio/fileops.c (_IO_new_file_close_it): Always flush when
|
||||
currently writing and seek to current position when not.
|
||||
* libio/Makefile (tests): Add bug-fclose1.
|
||||
* libio/bug-fclose1.c: New file.
|
||||
|
||||
2011-05-12 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
[BZ #12511]
|
||||
Index: glibc-2.16.90/libio/Makefile
|
||||
===================================================================
|
||||
--- glibc-2.16.90.orig/libio/Makefile
|
||||
+++ glibc-2.16.90/libio/Makefile
|
||||
@@ -59,7 +59,7 @@ tests = tst_swprintf tst_wprintf tst_sws
|
||||
tst-memstream1 tst-memstream2 \
|
||||
tst-wmemstream1 tst-wmemstream2 \
|
||||
bug-memstream1 bug-wmemstream1 \
|
||||
- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos bug-fclose1 tst-fseek \
|
||||
+ tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \
|
||||
tst-fwrite-error
|
||||
ifeq (yes,$(build-shared))
|
||||
# Add test-fopenloc only if shared library is enabled since it depends on
|
||||
Index: glibc-2.16.90/libio/bug-fclose1.c
|
||||
===================================================================
|
||||
--- glibc-2.16.90.orig/libio/bug-fclose1.c
|
||||
+++ /dev/null
|
||||
@@ -1,132 +0,0 @@
|
||||
-// BZ #12724
|
||||
-
|
||||
-static void do_prepare (void);
|
||||
-#define PREPARE(argc, argv) do_prepare ()
|
||||
-static int do_test (void);
|
||||
-#define TEST_FUNCTION do_test()
|
||||
-#include "../test-skeleton.c"
|
||||
-
|
||||
-
|
||||
-static int fd;
|
||||
-
|
||||
-
|
||||
-static void
|
||||
-do_prepare (void)
|
||||
-{
|
||||
- fd = create_temp_file ("bug-fclose1.", NULL);
|
||||
- if (fd == -1)
|
||||
- {
|
||||
- printf ("cannot create temporary file: %m\n");
|
||||
- exit (1);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
-static int
|
||||
-do_test (void)
|
||||
-{
|
||||
- static const char pattern[] = "hello world";
|
||||
-
|
||||
- /* Prepare a seekable file. */
|
||||
- if (write (fd, pattern, sizeof pattern) != sizeof pattern)
|
||||
- {
|
||||
- printf ("cannot write pattern: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- if (lseek (fd, 1, SEEK_SET) != 1)
|
||||
- {
|
||||
- printf ("cannot seek after write: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- /* Create an output stream visiting the file; when it is closed, all
|
||||
- other file descriptors visiting the file must see the new file
|
||||
- position. */
|
||||
- int fd2 = dup (fd);
|
||||
- if (fd2 < 0)
|
||||
- {
|
||||
- printf ("cannot duplicate descriptor for writing: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- FILE *f = fdopen (fd2, "w");
|
||||
- if (f == NULL)
|
||||
- {
|
||||
- printf ("first fdopen failed: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- if (fputc (pattern[1], f) != pattern[1])
|
||||
- {
|
||||
- printf ("fputc failed: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- if (fclose (f) != 0)
|
||||
- {
|
||||
- printf ("first fclose failed: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- errno = 0;
|
||||
- if (lseek (fd2, 0, SEEK_CUR) != -1)
|
||||
- {
|
||||
- printf ("lseek after fclose after write did not fail\n");
|
||||
- return 1;
|
||||
- }
|
||||
- if (errno != EBADF)
|
||||
- {
|
||||
- printf ("lseek after fclose after write did not fail with EBADF: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- off_t o = lseek (fd, 0, SEEK_CUR);
|
||||
- if (o != 2)
|
||||
- {
|
||||
- printf ("\
|
||||
-lseek on original descriptor after first fclose returned %ld, expected 2\n",
|
||||
- (long int) o);
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- /* Likewise for an input stream. */
|
||||
- fd2 = dup (fd);
|
||||
- if (fd2 < 0)
|
||||
- {
|
||||
- printf ("cannot duplicate descriptor for reading: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- f = fdopen (fd2, "r");
|
||||
- if (f == NULL)
|
||||
- {
|
||||
- printf ("second fdopen failed: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- char c = fgetc (f);
|
||||
- if (c != pattern[2])
|
||||
- {
|
||||
- printf ("getc returned %c, expected %c\n", c, pattern[2]);
|
||||
- return 1;
|
||||
- }
|
||||
- if (fclose (f) != 0)
|
||||
- {
|
||||
- printf ("second fclose failed: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- errno = 0;
|
||||
- if (lseek (fd2, 0, SEEK_CUR) != -1)
|
||||
- {
|
||||
- printf ("lseek after fclose after read did not fail\n");
|
||||
- return 1;
|
||||
- }
|
||||
- if (errno != EBADF)
|
||||
- {
|
||||
- printf ("lseek after fclose after read did not fail with EBADF: %m\n");
|
||||
- return 1;
|
||||
- }
|
||||
- o = lseek (fd, 0, SEEK_CUR);
|
||||
- if (o != 3)
|
||||
- {
|
||||
- printf ("\
|
||||
-lseek on original descriptor after second fclose returned %ld, expected 3\n",
|
||||
- (long int) o);
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
Index: glibc-2.16.90/libio/fileops.c
|
||||
===================================================================
|
||||
--- glibc-2.16.90.orig/libio/fileops.c
|
||||
+++ glibc-2.16.90/libio/fileops.c
|
||||
@@ -155,21 +155,13 @@ int
|
||||
_IO_new_file_close_it (fp)
|
||||
_IO_FILE *fp;
|
||||
{
|
||||
+ int write_status;
|
||||
if (!_IO_file_is_open (fp))
|
||||
return EOF;
|
||||
|
||||
- int write_status;
|
||||
- if (_IO_in_put_mode (fp))
|
||||
+ if ((fp->_flags & _IO_NO_WRITES) == 0
|
||||
+ && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0)
|
||||
write_status = _IO_do_flush (fp);
|
||||
- else if (fp->_offset != _IO_pos_BAD && fp->_IO_read_base != NULL
|
||||
- && !_IO_in_backup (fp))
|
||||
- {
|
||||
- off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0);
|
||||
- if (o == WEOF)
|
||||
- write_status = EOF;
|
||||
- else
|
||||
- write_status = _IO_SYSSEEK (fp, o, SEEK_SET) < 0 ? EOF : 0;
|
||||
- }
|
||||
else
|
||||
write_status = 0;
|
||||
|
@ -1,3 +1,19 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 8 18:55:53 UTC 2012 - aj@suse.de
|
||||
|
||||
- Update to 56e7d3ad5c2f:
|
||||
* Bugfixes
|
||||
* Fix warnings building glibc
|
||||
- Remove upstreamed patch glibc-revert-fseek-on-fclose.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 3 15:45:08 UTC 2012 - aj@suse.de
|
||||
|
||||
- Remove nosegneg i686 library, it's only used for a 32-bit Xen
|
||||
hypervisor (not for a 32-bit guest running under 64-bit hypervisor),
|
||||
and since the 32-bit Xen hypervisor is not part of openSUSE anymore,
|
||||
it is unneeded (bnc#789607).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 3 14:47:22 UTC 2012 - schwab@suse.de
|
||||
|
||||
|
23
glibc.spec
23
glibc.spec
@ -123,7 +123,7 @@ Provides: ld-linux.so.3(GLIBC_2.4)
|
||||
Version: 2.16.90
|
||||
Release: 0
|
||||
%define glibc_major_version 2.16.90
|
||||
%define git_id f638872ab422
|
||||
%define git_id 56e7d3ad5c2f
|
||||
Url: http://www.gnu.org/software/libc/libc.html
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Source: glibc-%{version}-%{git_id}.tar.xz
|
||||
@ -215,8 +215,7 @@ Patch102: glibc-2.4.90-no_NO.diff
|
||||
Patch103: glibc-2.4-china.diff
|
||||
|
||||
### Broken patches in glibc that we revert for now:
|
||||
# PATCH-FIX-OPENSUSE revert seeking on fclose for now bnc#711829 matz@suse.de
|
||||
Patch201: glibc-revert-fseek-on-fclose.diff
|
||||
# None
|
||||
|
||||
### Network related patches
|
||||
# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
|
||||
@ -451,8 +450,6 @@ rm nscd/s-stamp
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
|
||||
%patch201 -p1
|
||||
|
||||
%patch300 -p1
|
||||
%patch301 -p1
|
||||
%patch302 -p1
|
||||
@ -559,11 +556,6 @@ add_ons=",libidn"
|
||||
%ifarch hppa
|
||||
BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing"
|
||||
%endif
|
||||
%ifarch i386 i486 i586
|
||||
# Add this to avoid performance penalty on Xen for 32-bit x86
|
||||
# Note on i686 we build a special library
|
||||
BuildFlags="$BuildFlags -mno-tls-direct-seg-refs"
|
||||
%endif
|
||||
# Add flags for all plattforms except AXP
|
||||
%ifnarch alpha
|
||||
BuildFlags="$BuildFlags -g"
|
||||
@ -634,9 +626,6 @@ configure_and_build_glibc() {
|
||||
# Build base glibc
|
||||
#
|
||||
configure_and_build_glibc base "$BuildFlags" "$add_ons"
|
||||
%ifarch i686
|
||||
configure_and_build_glibc nosegneg "$BuildFlags -mno-tls-direct-seg-refs" "$add_ons"
|
||||
%endif
|
||||
%else
|
||||
#
|
||||
# Build POWER-optimized glibc
|
||||
@ -785,10 +774,6 @@ do
|
||||
done
|
||||
cd ..
|
||||
}
|
||||
# Install i686 glibc for Xen
|
||||
%ifarch i686
|
||||
install_optimized_variant nosegneg i686/nosegneg "../.."
|
||||
%endif
|
||||
|
||||
# Install power-optimized glibc
|
||||
%if %{optimize_power}
|
||||
@ -1113,10 +1098,6 @@ exit 0
|
||||
/%{_lib}/%1/libthread_db-1.0.so\
|
||||
/%{_lib}/%1/libthread_db.so.1
|
||||
|
||||
%ifarch i686
|
||||
%dir %attr(0755,root,root) /%{_lib}/i686
|
||||
%{optimized_libs i686/nosegneg}
|
||||
%endif
|
||||
%if %{optimize_power}
|
||||
%if %{powerpc_optimize_cpu_power4}
|
||||
%{optimized_libs power4}
|
||||
|
Loading…
Reference in New Issue
Block a user