From 516fbf67a0f6882e592029d69f7b632736cfee0a Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 3 Nov 2011 17:47:33 +0000 Subject: [PATCH] * fhandler.cc (off_current): Define local in fhandler_base::raw_write. Drop erroneous NO_COPY, add _RDATA to make R/O. (off_append): Ditto. * globals.cc (_RDATA): Move definition from here... * winsup.h: ...to here. --- winsup/cygwin/ChangeLog | 8 ++++++++ winsup/cygwin/fhandler.cc | 7 ++++--- winsup/cygwin/globals.cc | 5 ----- winsup/cygwin/winsup.h | 1 + 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index a0bcb59a3..bb091f06c 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2011-11-03 Corinna Vinschen + + * fhandler.cc (off_current): Define local in fhandler_base::raw_write. + Drop erroneous NO_COPY, add _RDATA to make R/O. + (off_append): Ditto. + * globals.cc (_RDATA): Move definition from here... + * winsup.h: ...to here. + 2011-10-30 Christopher Faylor * fhandler.h (fhandler_pipe::create_selectable): Remove optional diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index ee5a0c8c5..58335b52c 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -275,14 +275,15 @@ retry: /* Cover function to WriteFile to provide Posix interface and semantics (as much as possible). */ -static NO_COPY LARGE_INTEGER off_current = { QuadPart:FILE_USE_FILE_POINTER_POSITION }; -static NO_COPY LARGE_INTEGER off_append = { QuadPart:FILE_WRITE_TO_END_OF_FILE }; - ssize_t __stdcall fhandler_base::raw_write (const void *ptr, size_t len) { NTSTATUS status; IO_STATUS_BLOCK io; + static _RDATA LARGE_INTEGER off_current = + { QuadPart:FILE_USE_FILE_POINTER_POSITION }; + static _RDATA LARGE_INTEGER off_append = + { QuadPart:FILE_WRITE_TO_END_OF_FILE }; status = NtWriteFile (get_output_handle (), NULL, NULL, NULL, &io, (PVOID) ptr, len, diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc index 0b2ed573c..e678c2c48 100644 --- a/winsup/cygwin/globals.cc +++ b/winsup/cygwin/globals.cc @@ -70,9 +70,6 @@ bool NO_COPY _cygwin_testing; char NO_COPY almost_null[1]; -/* Define globally used, but readonly variables using the _RDATA attribute. */ -#define _RDATA __attribute__ ((section(".rdata"))) - /* Heavily-used const UNICODE_STRINGs are defined here once. The idea is a speed improvement by not having to initialize a UNICODE_STRING every time we make a string comparison. The strings are not defined as const, @@ -123,8 +120,6 @@ cygwin_props_t _RDATA cygwin_props = 0 }; -#undef _RDATA - extern "C" { /* This is an exported copy of environ which can be used by DLLs diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h index a7b828580..8ca97b7cf 100644 --- a/winsup/cygwin/winsup.h +++ b/winsup/cygwin/winsup.h @@ -23,6 +23,7 @@ details. */ #define NO_COPY __attribute__((nocommon)) __attribute__((section(".data_cygwin_nocopy"))) #define NO_COPY_INIT __attribute__((section(".data_cygwin_nocopy"))) +#define _RDATA __attribute__ ((section(".rdata"))) #define EXPORT_ALIAS(sym,symalias) extern "C" __typeof (sym) symalias __attribute__ ((alias(#sym))); -- 2.43.5