public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Build breakage
@ 2023-12-13 19:15 ` Jerry D
  2023-12-13 19:36   ` Thomas Schwinge
  0 siblings, 1 reply; 6+ messages in thread
From: Jerry D @ 2023-12-13 19:15 UTC (permalink / raw)
  To: gfortran, GCC Mailing List

I am getting this failure to build from clean trunk.

In file included from ../../../../trunk/libgomp/config/linux/allocator.c:31:
../../../../trunk/libgomp/config/linux/allocator.c: In function 
‘linux_memspace_alloc’:
../../../../trunk/libgomp/config/linux/allocator.c:70:26: error: format 
‘%ld’ expects argument of type ‘long int’, but argument 3 has type 
‘size_t’ {aka ‘unsigned int’} [-Werror=format=]
    70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    71 |                       " memory (ulimit too low?)\n", size);
       |                                                      ~~~~
       |                                                      |
       |                                                      size_t 
{aka unsigned int}
../../../../trunk/libgomp/libgomp.h:186:29: note: in definition of macro 
‘gomp_debug’
   186 |       (gomp_debug) ((KIND), __VA_ARGS__); \
       |                             ^~~~~~~~~~~
../../../../trunk/libgomp/config/linux/allocator.c:70:52: note: format 
string is defined here
    70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
       |                                                  ~~^
       |                                                    |
       |                                                    long int
       |                                                  %d


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

* Re: Build breakage
  2023-12-13 19:15 ` Build breakage Jerry D
@ 2023-12-13 19:36   ` Thomas Schwinge
  2023-12-13 20:17     ` Fix 'libgomp/config/linux/allocator.c' 'size_t' vs. '%ld' format string mismatch (was: Build breakage) Thomas Schwinge
  2023-12-13 20:27     ` Build breakage Jonathan Wakely
  0 siblings, 2 replies; 6+ messages in thread
From: Thomas Schwinge @ 2023-12-13 19:36 UTC (permalink / raw)
  To: Jerry D; +Cc: Andrew Stubbs, Tobias Burnus, Jakub Jelinek, fortran, gcc

Hi!

On 2023-12-13T11:15:54-0800, Jerry D via Gcc <gcc@gcc.gnu.org> wrote:
> I am getting this failure to build from clean trunk.

This is due to commit r14-6499-g348874f0baac0f22c98ab11abbfa65fd172f6bdd
"libgomp: basic pinned memory on Linux", which supposedly was only tested
with '--disable-multilib' or so.  As Andrew's now on vacations --
conveniently ;-P -- I'll soon push a fix.

(To restore your build, you may locally disable the 'gomp_debug' call, or
cast 'size' into '(long) size', for example.)


Grüße
 Thomas


> In file included from ../../../../trunk/libgomp/config/linux/allocator.c:31:
> ../../../../trunk/libgomp/config/linux/allocator.c: In function
> ‘linux_memspace_alloc’:
> ../../../../trunk/libgomp/config/linux/allocator.c:70:26: error: format
> ‘%ld’ expects argument of type ‘long int’, but argument 3 has type
> ‘size_t’ {aka ‘unsigned int’} [-Werror=format=]
>     70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
>        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     71 |                       " memory (ulimit too low?)\n", size);
>        |                                                      ~~~~
>        |                                                      |
>        |                                                      size_t
> {aka unsigned int}
> ../../../../trunk/libgomp/libgomp.h:186:29: note: in definition of macro
> ‘gomp_debug’
>    186 |       (gomp_debug) ((KIND), __VA_ARGS__); \
>        |                             ^~~~~~~~~~~
> ../../../../trunk/libgomp/config/linux/allocator.c:70:52: note: format
> string is defined here
>     70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
>        |                                                  ~~^
>        |                                                    |
>        |                                                    long int
>        |                                                  %d
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

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

* Fix 'libgomp/config/linux/allocator.c' 'size_t' vs. '%ld' format string mismatch (was: Build breakage)
  2023-12-13 19:36   ` Thomas Schwinge
@ 2023-12-13 20:17     ` Thomas Schwinge
  2023-12-13 20:27     ` Build breakage Jonathan Wakely
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Schwinge @ 2023-12-13 20:17 UTC (permalink / raw)
  To: Jerry D, Andrew Stubbs, gcc-patches
  Cc: Tobias Burnus, Jakub Jelinek, fortran, gcc

[-- Attachment #1: Type: text/plain, Size: 2433 bytes --]

Hi!

On 2023-12-13T20:36:40+0100, I wrote:
> On 2023-12-13T11:15:54-0800, Jerry D via Gcc <gcc@gcc.gnu.org> wrote:
>> I am getting this failure to build from clean trunk.
>
> This is due to commit r14-6499-g348874f0baac0f22c98ab11abbfa65fd172f6bdd
> "libgomp: basic pinned memory on Linux", which supposedly was only tested
> with '--disable-multilib' or so.  As Andrew's now on vacations --
> conveniently ;-P -- I'll soon push a fix.

Pushed to master branch commit 5445ff4a51fcee4d281f79b5f54b349290d0327d
"Fix 'libgomp/config/linux/allocator.c' 'size_t' vs. '%ld' format string mismatch",
see attached.


Grüße
 Thomas


>> In file included from ../../../../trunk/libgomp/config/linux/allocator.c:31:
>> ../../../../trunk/libgomp/config/linux/allocator.c: In function
>> ‘linux_memspace_alloc’:
>> ../../../../trunk/libgomp/config/linux/allocator.c:70:26: error: format
>> ‘%ld’ expects argument of type ‘long int’, but argument 3 has type
>> ‘size_t’ {aka ‘unsigned int’} [-Werror=format=]
>>     70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
>>        |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>     71 |                       " memory (ulimit too low?)\n", size);
>>        |                                                      ~~~~
>>        |                                                      |
>>        |                                                      size_t
>> {aka unsigned int}
>> ../../../../trunk/libgomp/libgomp.h:186:29: note: in definition of macro
>> ‘gomp_debug’
>>    186 |       (gomp_debug) ((KIND), __VA_ARGS__); \
>>        |                             ^~~~~~~~~~~
>> ../../../../trunk/libgomp/config/linux/allocator.c:70:52: note: format
>> string is defined here
>>     70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
>>        |                                                  ~~^
>>        |                                                    |
>>        |                                                    long int
>>        |                                                  %d


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

[-- Attachment #2: 0001-Fix-libgomp-config-linux-allocator.c-size_t-vs.-ld-f.patch --]
[-- Type: text/x-diff, Size: 3578 bytes --]

From 5445ff4a51fcee4d281f79b5f54b349290d0327d Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Wed, 13 Dec 2023 17:48:11 +0100
Subject: [PATCH] Fix 'libgomp/config/linux/allocator.c' 'size_t' vs. '%ld'
 format string mismatch
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fix-up for commit 348874f0baac0f22c98ab11abbfa65fd172f6bdd
"libgomp: basic pinned memory on Linux", which may result in build failures
as follow, for example, for the '-m32' multilib of x86_64-pc-linux-gnu:

    In file included from [...]/source-gcc/libgomp/config/linux/allocator.c:31:
    [...]/source-gcc/libgomp/config/linux/allocator.c: In function ‘linux_memspace_alloc’:
    [...]/source-gcc/libgomp/config/linux/allocator.c:70:26: error: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Werror=format=]
       70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       71 |                       " memory (ulimit too low?)\n", size);
          |                                                      ~~~~
          |                                                      |
          |                                                      size_t {aka unsigned int}
    [...]/source-gcc/libgomp/libgomp.h:186:29: note: in definition of macro ‘gomp_debug’
      186 |       (gomp_debug) ((KIND), __VA_ARGS__); \
          |                             ^~~~~~~~~~~
    [...]/source-gcc/libgomp/config/linux/allocator.c:70:52: note: format string is defined here
       70 |           gomp_debug (0, "libgomp: failed to pin %ld bytes of"
          |                                                  ~~^
          |                                                    |
          |                                                    long int
          |                                                  %d
    cc1: all warnings being treated as errors
    make[9]: *** [allocator.lo] Error 1
    make[9]: Leaving directory `[...]/build-gcc/x86_64-pc-linux-gnu/32/libgomp'
    [...]

Fix this in the same way as used elsewhere in libgomp.

	libgomp/
	* config/linux/allocator.c (linux_memspace_alloc): Fix 'size_t'
	vs. '%ld' format string mismatch.
---
 libgomp/config/linux/allocator.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/libgomp/config/linux/allocator.c b/libgomp/config/linux/allocator.c
index 269d0d607d8..6ffa2417913 100644
--- a/libgomp/config/linux/allocator.c
+++ b/libgomp/config/linux/allocator.c
@@ -50,6 +50,9 @@
 #include <sys/mman.h>
 #include <string.h>
 #include "libgomp.h"
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>  /* For PRIu64.  */
+#endif
 
 static void *
 linux_memspace_alloc (omp_memspace_handle_t memspace, size_t size, int pin)
@@ -67,8 +70,13 @@ linux_memspace_alloc (omp_memspace_handle_t memspace, size_t size, int pin)
 
       if (mlock (addr, size))
 	{
-	  gomp_debug (0, "libgomp: failed to pin %ld bytes of"
-		      " memory (ulimit too low?)\n", size);
+#ifdef HAVE_INTTYPES_H
+	  gomp_debug (0, "libgomp: failed to pin %"PRIu64" bytes of"
+		      " memory (ulimit too low?)\n", (uint64_t) size);
+#else
+	  gomp_debug (0, "libgomp: failed to pin %lu bytes of"
+		      " memory (ulimit too low?)\n", (unsigned long) size);
+#endif
 	  munmap (addr, size);
 	  return NULL;
 	}
-- 
2.34.1


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

* Re: Build breakage
  2023-12-13 19:36   ` Thomas Schwinge
  2023-12-13 20:17     ` Fix 'libgomp/config/linux/allocator.c' 'size_t' vs. '%ld' format string mismatch (was: Build breakage) Thomas Schwinge
@ 2023-12-13 20:27     ` Jonathan Wakely
  2023-12-13 20:56       ` Thomas Schwinge
  1 sibling, 1 reply; 6+ messages in thread
From: Jonathan Wakely @ 2023-12-13 20:27 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Jerry D, Andrew Stubbs, Tobias Burnus, Jakub Jelinek,
	fortran@gcc.gnu.org List, gcc

[-- Attachment #1: Type: text/plain, Size: 645 bytes --]

On Wed, 13 Dec 2023, 19:37 Thomas Schwinge, <thomas@codesourcery.com> wrote:

> Hi!
>
> On 2023-12-13T11:15:54-0800, Jerry D via Gcc <gcc@gcc.gnu.org> wrote:
> > I am getting this failure to build from clean trunk.
>
> This is due to commit r14-6499-g348874f0baac0f22c98ab11abbfa65fd172f6bdd
> "libgomp: basic pinned memory on Linux", which supposedly was only tested
> with '--disable-multilib' or so.  As Andrew's now on vacations --
> conveniently ;-P -- I'll soon push a fix.
>
> (To restore your build, you may locally disable the 'gomp_debug' call, or
> cast 'size' into '(long) size', for example.)
>

Wouldn't --disable-werror work too?

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

* Re: Build breakage
  2023-12-13 20:27     ` Build breakage Jonathan Wakely
@ 2023-12-13 20:56       ` Thomas Schwinge
  2023-12-13 21:04         ` Jonathan Wakely
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Schwinge @ 2023-12-13 20:56 UTC (permalink / raw)
  To: Jonathan Wakely
  Cc: Jerry D, Andrew Stubbs, Tobias Burnus, Jakub Jelinek,
	fortran@gcc.gnu.org List, gcc

Hi!

On 2023-12-13T20:27:44+0000, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On Wed, 13 Dec 2023, 19:37 Thomas Schwinge, <thomas@codesourcery.com> wrote:
>> On 2023-12-13T11:15:54-0800, Jerry D via Gcc <gcc@gcc.gnu.org> wrote:
>> > I am getting this failure to build from clean trunk.
>>
>> This is due to commit r14-6499-g348874f0baac0f22c98ab11abbfa65fd172f6bdd
>> "libgomp: basic pinned memory on Linux", which supposedly was only tested
>> with '--disable-multilib' or so.  As Andrew's now on vacations --
>> conveniently ;-P -- I'll soon push a fix.
>>
>> (To restore your build, you may locally disable the 'gomp_debug' call, or
>> cast 'size' into '(long) size', for example.)
>>
>
> Wouldn't --disable-werror work too?

I suppose so, but that comes with re-'configure'ing, re-starting the
build from scratch, or otherwise manually fiddling with 'Makefile's etc.,
whereas after editing the source file as indicated, you may simply resume
'make'.


Grüße
 Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

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

* Re: Build breakage
  2023-12-13 20:56       ` Thomas Schwinge
@ 2023-12-13 21:04         ` Jonathan Wakely
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Wakely @ 2023-12-13 21:04 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Jerry D, Andrew Stubbs, Tobias Burnus, Jakub Jelinek,
	fortran@gcc.gnu.org List, gcc

On Wed, 13 Dec 2023 at 20:56, Thomas Schwinge <thomas@codesourcery.com> wrote:
>
> Hi!
>
> On 2023-12-13T20:27:44+0000, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> > On Wed, 13 Dec 2023, 19:37 Thomas Schwinge, <thomas@codesourcery.com> wrote:
> >> On 2023-12-13T11:15:54-0800, Jerry D via Gcc <gcc@gcc.gnu.org> wrote:
> >> > I am getting this failure to build from clean trunk.
> >>
> >> This is due to commit r14-6499-g348874f0baac0f22c98ab11abbfa65fd172f6bdd
> >> "libgomp: basic pinned memory on Linux", which supposedly was only tested
> >> with '--disable-multilib' or so.  As Andrew's now on vacations --
> >> conveniently ;-P -- I'll soon push a fix.
> >>
> >> (To restore your build, you may locally disable the 'gomp_debug' call, or
> >> cast 'size' into '(long) size', for example.)
> >>
> >
> > Wouldn't --disable-werror work too?
>
> I suppose so, but that comes with re-'configure'ing, re-starting the
> build from scratch, or otherwise manually fiddling with 'Makefile's etc.,
> whereas after editing the source file as indicated, you may simply resume
> 'make'.

True. Sometimes start a completely new build with different config is
preferable to changing the sources. Sometimes it isn't :-)

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

end of thread, other threads:[~2023-12-13 21:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <fe58c7bf-1f14-4794-8f99-abab8360fc4b@codesourcery.com>
2023-12-13 19:15 ` Build breakage Jerry D
2023-12-13 19:36   ` Thomas Schwinge
2023-12-13 20:17     ` Fix 'libgomp/config/linux/allocator.c' 'size_t' vs. '%ld' format string mismatch (was: Build breakage) Thomas Schwinge
2023-12-13 20:27     ` Build breakage Jonathan Wakely
2023-12-13 20:56       ` Thomas Schwinge
2023-12-13 21:04         ` Jonathan Wakely

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 read-only IMAP folder(s) and NNTP newsgroup(s).