public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/29746] New: ppoll\ does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit
@ 2022-11-03 13:09 skabe at vega dot pgw.jp
  2022-11-03 13:11 ` [Bug libc/29746] ppoll() " skabe at vega dot pgw.jp
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: skabe at vega dot pgw.jp @ 2022-11-03 13:09 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29746

            Bug ID: 29746
           Summary: ppoll\ does not switch to __ppoll64 when
                    -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on
                    33bit
           Product: glibc
           Version: 2.36
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: skabe at vega dot pgw.jp
                CC: drepper.fsp at gmail dot com
  Target Milestone: 2.36

glibc version: 2.36 (git commit 19535f3b57)

host/build triplets: i586-redhat-linux

../configure --prefix=/usr/local/glibc2 --with-headers=/usr/include
--enable-bind-now --build=i586-redhat-linux --host=i586-redhat-linux
kernel: Linux rocky9.five.ten 5.14.0-168.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri
Sep 23 11:43:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

gcc: 
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i586-redhat-linux/11/lto-wrapper
Target: i586-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-host-pie
--enable-host-bind-now --enable-languages=c,c++,fortran,lto --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://bugs.rockylinux.org/ --enable-shared
--enable-threads=posix --enable-checking=release --enable-multilib
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id
--with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin
--enable-initfini-array --without-isl --enable-gnu-indirect-function
--with-tune=generic --with-arch=i586 --build=i586-redhat-linux
--with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.1 20220127 (Red Hat 11.2.1-9) (GCC)

binutils: binutils-2.35.2-17.el9.v1.i586

Additional URL: https://github.com/systemd/systemd/issues/25176

Consider the following code as poll.c:
```
#define _GNU_SOURCE 1
#define _TIME_BITS 64
#define _FILE_OFFSET_BITS 64

#include <stdio.h>
#include <sys/time.h>
#include <poll.h>

void wait1(void);

void wait1(void)
{
        struct pollfd fds[1];
        int nfds=0;
        struct timespec ts = {1, 0};
        ppoll(fds, nfds, &ts, NULL);
}
```

compiling as below shows no problem:
$ gcc -I/usr/local/glibc2/include/ -march=i686 -m32 -O -g -c poll.c
$ objdump -t poll.o|grep ppoll
00000000         *UND*  00000000 __ppoll64

ppoll() is properly redirected to __ppoll64 by -D_TIME_BITS=64.

Now add -D_FORTIFY_SOURCE=2:

$ gcc -I/usr/local/glibc2/include/ -march=i686 -m32 -O -g -D_FORTIFY_SOURCE=2
-c poll.c
$ objdump -t poll.o|grep ppoll
00000000         *UND*  00000000 ppoll

switching to __ppoll is nullified(bad).
Application passes paramters in 64bit time_t, whereas kernel will parse data as
32bit time_t,
which will upset ppoll().

I could not crank and a patch, since _TIME_BITS=64 involves heavy use of
asm and attributes trickery.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit
  2022-11-03 13:09 [Bug libc/29746] New: ppoll\ does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit skabe at vega dot pgw.jp
@ 2022-11-03 13:11 ` skabe at vega dot pgw.jp
  2022-11-03 15:56 ` [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 32bit schwab@linux-m68k.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: skabe at vega dot pgw.jp @ 2022-11-03 13:11 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29746

Kabe <skabe at vega dot pgw.jp> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|ppoll\ does not switch to   |ppoll() does not switch to
                   |__ppoll64 when              |__ppoll64 when
                   |-D_TIME_BITS=64 and         |-D_TIME_BITS=64 and
                   |-D_FORTIFY_SOURCE=2 is      |-D_FORTIFY_SOURCE=2 is
                   |given on 33bit              |given on 33bit

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 32bit
  2022-11-03 13:09 [Bug libc/29746] New: ppoll\ does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit skabe at vega dot pgw.jp
  2022-11-03 13:11 ` [Bug libc/29746] ppoll() " skabe at vega dot pgw.jp
@ 2022-11-03 15:56 ` schwab@linux-m68k.org
  2022-11-03 16:20 ` adhemerval.zanella at linaro dot org
  2022-11-08 16:46 ` adhemerval.zanella at linaro dot org
  3 siblings, 0 replies; 5+ messages in thread
From: schwab@linux-m68k.org @ 2022-11-03 15:56 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29746

Andreas Schwab <schwab@linux-m68k.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|ppoll() does not switch to  |ppoll() does not switch to
                   |__ppoll64 when              |__ppoll64 when
                   |-D_TIME_BITS=64 and         |-D_TIME_BITS=64 and
                   |-D_FORTIFY_SOURCE=2 is      |-D_FORTIFY_SOURCE=2 is
                   |given on 33bit              |given on 32bit

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 32bit
  2022-11-03 13:09 [Bug libc/29746] New: ppoll\ does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit skabe at vega dot pgw.jp
  2022-11-03 13:11 ` [Bug libc/29746] ppoll() " skabe at vega dot pgw.jp
  2022-11-03 15:56 ` [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 32bit schwab@linux-m68k.org
@ 2022-11-03 16:20 ` adhemerval.zanella at linaro dot org
  2022-11-08 16:46 ` adhemerval.zanella at linaro dot org
  3 siblings, 0 replies; 5+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-11-03 16:20 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29746

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |adhemerval.zanella at linaro dot o
                   |                            |rg
           Assignee|unassigned at sourceware dot org   |adhemerval.zanella at linaro dot o
                   |                            |rg

--- Comment #1 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
I will take a look.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 32bit
  2022-11-03 13:09 [Bug libc/29746] New: ppoll\ does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit skabe at vega dot pgw.jp
                   ` (2 preceding siblings ...)
  2022-11-03 16:20 ` adhemerval.zanella at linaro dot org
@ 2022-11-08 16:46 ` adhemerval.zanella at linaro dot org
  3 siblings, 0 replies; 5+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-11-08 16:46 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29746

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED
   Target Milestone|2.36                        |2.37

--- Comment #2 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
Fixed on 2.37.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

end of thread, other threads:[~2022-11-08 16:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-03 13:09 [Bug libc/29746] New: ppoll\ does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 33bit skabe at vega dot pgw.jp
2022-11-03 13:11 ` [Bug libc/29746] ppoll() " skabe at vega dot pgw.jp
2022-11-03 15:56 ` [Bug libc/29746] ppoll() does not switch to __ppoll64 when -D_TIME_BITS=64 and -D_FORTIFY_SOURCE=2 is given on 32bit schwab@linux-m68k.org
2022-11-03 16:20 ` adhemerval.zanella at linaro dot org
2022-11-08 16:46 ` adhemerval.zanella at linaro dot org

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).