qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate
@ 2012-03-10 10:14 Stefan Weil
  2012-03-10 10:14 ` [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32) Stefan Weil
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Stefan Weil @ 2012-03-10 10:14 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Weil

MinGW-w64 already defines lseek and ftruncate (and uses the 64 bit
variants). The conditional compilation avoids redefinitions
(which would be wrong) and compiler warnings.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 qemu-common.h |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/qemu-common.h b/qemu-common.h
index dbfce6f..b0fdf5c 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -93,9 +93,13 @@ typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
 
 #ifdef _WIN32
 #define fsync _commit
-#define lseek _lseeki64
+#if !defined(lseek)
+# define lseek _lseeki64
+#endif
 int qemu_ftruncate64(int, int64_t);
-#define ftruncate qemu_ftruncate64
+#if !defined(ftruncate)
+# define ftruncate qemu_ftruncate64
+#endif
 
 static inline char *realpath(const char *path, char *resolved_path)
 {
-- 
1.7.9

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32)
  2012-03-10 10:14 [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Stefan Weil
@ 2012-03-10 10:14 ` Stefan Weil
  2012-03-10 16:28   ` Andreas Färber
  2012-03-11 16:10   ` Blue Swirl
  2012-03-10 12:11 ` [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Andreas Färber
  2012-03-11 16:09 ` Blue Swirl
  2 siblings, 2 replies; 8+ messages in thread
From: Stefan Weil @ 2012-03-10 10:14 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Weil

MinGW-w64 and some versions of MinGW32 don't provide libiberty.a,
so add this library only if it was found.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 configure |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/configure b/configure
index ca25250..bb16498 100755
--- a/configure
+++ b/configure
@@ -511,7 +511,13 @@ if test "$mingw32" = "yes" ; then
   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
   # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
   QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
-  LIBS="-lwinmm -lws2_32 -liberty -liphlpapi $LIBS"
+  LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
+cat > $TMPC << EOF
+int main(void) { return 0; }
+EOF
+  if compile_prog "" "-liberty" ; then
+    LIBS="-liberty $LIBS"
+  fi
   prefix="c:/Program Files/Qemu"
   mandir="\${prefix}"
   datadir="\${prefix}"
-- 
1.7.9

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate
  2012-03-10 10:14 [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Stefan Weil
  2012-03-10 10:14 ` [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32) Stefan Weil
@ 2012-03-10 12:11 ` Andreas Färber
  2012-03-10 16:17   ` Stefan Weil
  2012-03-11 16:09 ` Blue Swirl
  2 siblings, 1 reply; 8+ messages in thread
From: Andreas Färber @ 2012-03-10 12:11 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-devel

Am 10.03.2012 11:14, schrieb Stefan Weil:
> MinGW-w64 already defines lseek and ftruncate (and uses the 64 bit
> variants). The conditional compilation avoids redefinitions
> (which would be wrong) and compiler warnings.
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  qemu-common.h |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/qemu-common.h b/qemu-common.h
> index dbfce6f..b0fdf5c 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -93,9 +93,13 @@ typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
>  
>  #ifdef _WIN32
>  #define fsync _commit
> -#define lseek _lseeki64
> +#if !defined(lseek)
> +# define lseek _lseeki64
> +#endif
>  int qemu_ftruncate64(int, int64_t);
> -#define ftruncate qemu_ftruncate64
> +#if !defined(ftruncate)
> +# define ftruncate qemu_ftruncate64
> +#endif

lseek looks okay to me, but did you check that ftruncate and
qemu_ftruncate64 behave the same?

Andreas

>  
>  static inline char *realpath(const char *path, char *resolved_path)
>  {

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate
  2012-03-10 12:11 ` [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Andreas Färber
@ 2012-03-10 16:17   ` Stefan Weil
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Weil @ 2012-03-10 16:17 UTC (permalink / raw)
  To: Andreas Färber; +Cc: qemu-devel

Am 10.03.2012 13:11, schrieb Andreas Färber:
> Am 10.03.2012 11:14, schrieb Stefan Weil:
>    
>> MinGW-w64 already defines lseek and ftruncate (and uses the 64 bit
>> variants). The conditional compilation avoids redefinitions
>> (which would be wrong) and compiler warnings.
>>
>> Signed-off-by: Stefan Weil<sw@weilnetz.de>
>> ---
>>   qemu-common.h |    8 ++++++--
>>   1 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/qemu-common.h b/qemu-common.h
>> index dbfce6f..b0fdf5c 100644
>> --- a/qemu-common.h
>> +++ b/qemu-common.h
>> @@ -93,9 +93,13 @@ typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
>>
>>   #ifdef _WIN32
>>   #define fsync _commit
>> -#define lseek _lseeki64
>> +#if !defined(lseek)
>> +# define lseek _lseeki64
>> +#endif
>>   int qemu_ftruncate64(int, int64_t);
>> -#define ftruncate qemu_ftruncate64
>> +#if !defined(ftruncate)
>> +# define ftruncate qemu_ftruncate64
>> +#endif
>>      
> lseek looks okay to me, but did you check that ftruncate and
> qemu_ftruncate64 behave the same?
>
> Andreas
>    

qemu_ftruncate64 was added in 1996. It is only used for MinGW32,
and maybe not even needed there, because it is simply a 64 bit
implementation of ftruncate. Eliminating qemu_ftruncate64
might be handled in a separate patch.

The MinGW32 and MinGW-w64 functions ftruncate64 should be sufficient,
and MinGW-w64 uses #define ftruncate ftruncate64.

Regards,
Stefan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32)
  2012-03-10 10:14 ` [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32) Stefan Weil
@ 2012-03-10 16:28   ` Andreas Färber
  2012-03-10 18:47     ` Stefan Weil
  2012-03-11 16:10   ` Blue Swirl
  1 sibling, 1 reply; 8+ messages in thread
From: Andreas Färber @ 2012-03-10 16:28 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-devel

Am 10.03.2012 11:14, schrieb Stefan Weil:
> MinGW-w64 and some versions of MinGW32 don't provide libiberty.a,
> so add this library only if it was found.

What do we need it for at all then?

Andreas

> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  configure |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/configure b/configure
> index ca25250..bb16498 100755
> --- a/configure
> +++ b/configure
> @@ -511,7 +511,13 @@ if test "$mingw32" = "yes" ; then
>    QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
>    # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
>    QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
> -  LIBS="-lwinmm -lws2_32 -liberty -liphlpapi $LIBS"
> +  LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
> +cat > $TMPC << EOF
> +int main(void) { return 0; }
> +EOF
> +  if compile_prog "" "-liberty" ; then
> +    LIBS="-liberty $LIBS"
> +  fi
>    prefix="c:/Program Files/Qemu"
>    mandir="\${prefix}"
>    datadir="\${prefix}"

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32)
  2012-03-10 16:28   ` Andreas Färber
@ 2012-03-10 18:47     ` Stefan Weil
  0 siblings, 0 replies; 8+ messages in thread
From: Stefan Weil @ 2012-03-10 18:47 UTC (permalink / raw)
  To: Andreas Färber; +Cc: qemu-devel

Am 10.03.2012 17:28, schrieb Andreas Färber:
> Am 10.03.2012 11:14, schrieb Stefan Weil:
>> MinGW-w64 and some versions of MinGW32 don't provide libiberty.a,
>> so add this library only if it was found.
>
> What do we need it for at all then?
>
> Andreas
>
>> Signed-off-by: Stefan Weil <sw@weilnetz.de>
>> ---
>> configure | 8 +++++++-
>> 1 files changed, 7 insertions(+), 1 deletions(-)
>>
>> diff --git a/configure b/configure
>> index ca25250..bb16498 100755
>> --- a/configure
>> +++ b/configure
>> @@ -511,7 +511,13 @@ if test "$mingw32" = "yes" ; then
>> QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
>> # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
>> QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
>> - LIBS="-lwinmm -lws2_32 -liberty -liphlpapi $LIBS"
>> + LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
>> +cat > $TMPC << EOF
>> +int main(void) { return 0; }
>> +EOF
>> + if compile_prog "" "-liberty" ; then
>> + LIBS="-liberty $LIBS"
>> + fi
>> prefix="c:/Program Files/Qemu"
>> mandir="\${prefix}"
>> datadir="\${prefix}"

See commit 08f3896a072c6d05e36ec3fa4fd303ea550ee38f:

Author: Stefan Weil <weil@mail.berlios.de>
Date:   Fri Feb 4 22:38:47 2011 +0100

     w32: Use additional library libiberty.a

     libiberty.a is part of MinGW and provides useful functions
     like ffs (MinGW) and getopt (MinGW-w64).

     It is needed for w64 compilations and allows simpler code for w32.

     Cc: Anthony Liguori <aliguori@us.ibm.com>
     Signed-off-by: Stefan Weil <weil@mail.berlios.de>
     Signed-off-by: Blue Swirl <blauwirbel@gmail.com>



It looks like newer versions of MinGW-w64 don't have libiberty.a
while older ones (Debian squeeze) provide it. For those versions
which have libiberty.a, it is needed because it includes ffs, strncmp
and several other functions used by QEMU code.

Stefan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate
  2012-03-10 10:14 [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Stefan Weil
  2012-03-10 10:14 ` [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32) Stefan Weil
  2012-03-10 12:11 ` [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Andreas Färber
@ 2012-03-11 16:09 ` Blue Swirl
  2 siblings, 0 replies; 8+ messages in thread
From: Blue Swirl @ 2012-03-11 16:09 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-devel

Thanks, applied.

On Sat, Mar 10, 2012 at 10:14, Stefan Weil <sw@weilnetz.de> wrote:
> MinGW-w64 already defines lseek and ftruncate (and uses the 64 bit
> variants). The conditional compilation avoids redefinitions
> (which would be wrong) and compiler warnings.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  qemu-common.h |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/qemu-common.h b/qemu-common.h
> index dbfce6f..b0fdf5c 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -93,9 +93,13 @@ typedef int (*fprintf_function)(FILE *f, const char *fmt, ...)
>
>  #ifdef _WIN32
>  #define fsync _commit
> -#define lseek _lseeki64
> +#if !defined(lseek)
> +# define lseek _lseeki64
> +#endif
>  int qemu_ftruncate64(int, int64_t);
> -#define ftruncate qemu_ftruncate64
> +#if !defined(ftruncate)
> +# define ftruncate qemu_ftruncate64
> +#endif
>
>  static inline char *realpath(const char *path, char *resolved_path)
>  {
> --
> 1.7.9
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32)
  2012-03-10 10:14 ` [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32) Stefan Weil
  2012-03-10 16:28   ` Andreas Färber
@ 2012-03-11 16:10   ` Blue Swirl
  1 sibling, 0 replies; 8+ messages in thread
From: Blue Swirl @ 2012-03-11 16:10 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-devel

Thanks, applied.

On Sat, Mar 10, 2012 at 10:14, Stefan Weil <sw@weilnetz.de> wrote:
> MinGW-w64 and some versions of MinGW32 don't provide libiberty.a,
> so add this library only if it was found.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  configure |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/configure b/configure
> index ca25250..bb16498 100755
> --- a/configure
> +++ b/configure
> @@ -511,7 +511,13 @@ if test "$mingw32" = "yes" ; then
>   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
>   # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
>   QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
> -  LIBS="-lwinmm -lws2_32 -liberty -liphlpapi $LIBS"
> +  LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
> +cat > $TMPC << EOF
> +int main(void) { return 0; }
> +EOF
> +  if compile_prog "" "-liberty" ; then
> +    LIBS="-liberty $LIBS"
> +  fi
>   prefix="c:/Program Files/Qemu"
>   mandir="\${prefix}"
>   datadir="\${prefix}"
> --
> 1.7.9
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-03-11 16:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-10 10:14 [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Stefan Weil
2012-03-10 10:14 ` [Qemu-devel] [PATCH] configure: Test for libiberty.a (mingw32) Stefan Weil
2012-03-10 16:28   ` Andreas Färber
2012-03-10 18:47     ` Stefan Weil
2012-03-11 16:10   ` Blue Swirl
2012-03-10 12:11 ` [Qemu-devel] [PATCH] w64: Don't redefine lseek, ftruncate Andreas Färber
2012-03-10 16:17   ` Stefan Weil
2012-03-11 16:09 ` Blue Swirl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).