Fix conform linknamespace tests due to gnu_dev_makedev

Message ID 20210331082316.3291077-1-stli@linux.ibm.com
State Committed
Commit 18f0afa8485e8cd6434d118cb841d78d897230b6
Headers
Series Fix conform linknamespace tests due to gnu_dev_makedev |

Commit Message

Stefan Liebler March 31, 2021, 8:23 a.m. UTC
  If building on s390 / i686 with -Os, various conformance
tests are failing with e.g.
conform/ISO/assert.h/linknamespace.out:
[initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __getcwd -> [libc.a(getcwd.o)] __fstatat64 -> [libc.a(fstatat64.o)] gnu_dev_makedev

The usage of gnu_dev_makedev was recently introduced by
usage of the makedev makro in commit:
5b980d4809913088729982865188b754939bcd39
linux: Use statx for MIPSn64

This patch is now linking against __gnu_dev_makedev as
also done in commit:
8b4a118222c7ed41bc653943b542915946dff1dd
Fix -Os gnu_dev_* linknamespace, localplt issues (bug 15105, bug 19463).
---
 sysdeps/unix/sysv/linux/fstatat64.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Florian Weimer March 31, 2021, 9:31 a.m. UTC | #1
* Stefan Liebler via Libc-alpha:

> If building on s390 / i686 with -Os, various conformance
> tests are failing with e.g.
> conform/ISO/assert.h/linknamespace.out:
> [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __getcwd -> [libc.a(getcwd.o)] __fstatat64 -> [libc.a(fstatat64.o)] gnu_dev_makedev
>
> The usage of gnu_dev_makedev was recently introduced by
> usage of the makedev makro in commit:
> 5b980d4809913088729982865188b754939bcd39
> linux: Use statx for MIPSn64
>
> This patch is now linking against __gnu_dev_makedev as
> also done in commit:
> 8b4a118222c7ed41bc653943b542915946dff1dd
> Fix -Os gnu_dev_* linknamespace, localplt issues (bug 15105, bug 19463).
> ---
>  sysdeps/unix/sysv/linux/fstatat64.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
> index 31d3253044..f968e4ef05 100644
> --- a/sysdeps/unix/sysv/linux/fstatat64.c
> +++ b/sysdeps/unix/sysv/linux/fstatat64.c
> @@ -53,8 +53,8 @@ fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
>      return r;
>  
>    *buf = (struct __stat64_t64) {
> -    .st_dev = makedev (tmp.stx_dev_major, tmp.stx_dev_minor),
> -    .st_rdev = makedev (tmp.stx_rdev_major, tmp.stx_rdev_minor),
> +    .st_dev = __gnu_dev_makedev (tmp.stx_dev_major, tmp.stx_dev_minor),
> +    .st_rdev = __gnu_dev_makedev (tmp.stx_rdev_major, tmp.stx_rdev_minor),
>      .st_ino = tmp.stx_ino,
>      .st_mode = tmp.stx_mode,
>      .st_nlink = tmp.stx_nlink,

Looks reasonable, thanks.
  
Stefan Liebler March 31, 2021, 2:11 p.m. UTC | #2
On 31/03/2021 11:31, Florian Weimer wrote:
> * Stefan Liebler via Libc-alpha:
> 
>> If building on s390 / i686 with -Os, various conformance
>> tests are failing with e.g.
>> conform/ISO/assert.h/linknamespace.out:
>> [initial] __assert_fail -> [libc.a(assert.o)] __dcgettext -> [libc.a(dcgettext.o)] __dcigettext -> [libc.a(dcigettext.o)] __getcwd -> [libc.a(getcwd.o)] __fstatat64 -> [libc.a(fstatat64.o)] gnu_dev_makedev
>>
>> The usage of gnu_dev_makedev was recently introduced by
>> usage of the makedev makro in commit:
>> 5b980d4809913088729982865188b754939bcd39
>> linux: Use statx for MIPSn64
>>
>> This patch is now linking against __gnu_dev_makedev as
>> also done in commit:
>> 8b4a118222c7ed41bc653943b542915946dff1dd
>> Fix -Os gnu_dev_* linknamespace, localplt issues (bug 15105, bug 19463).
>> ---
>>  sysdeps/unix/sysv/linux/fstatat64.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
>> index 31d3253044..f968e4ef05 100644
>> --- a/sysdeps/unix/sysv/linux/fstatat64.c
>> +++ b/sysdeps/unix/sysv/linux/fstatat64.c
>> @@ -53,8 +53,8 @@ fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
>>      return r;
>>  
>>    *buf = (struct __stat64_t64) {
>> -    .st_dev = makedev (tmp.stx_dev_major, tmp.stx_dev_minor),
>> -    .st_rdev = makedev (tmp.stx_rdev_major, tmp.stx_rdev_minor),
>> +    .st_dev = __gnu_dev_makedev (tmp.stx_dev_major, tmp.stx_dev_minor),
>> +    .st_rdev = __gnu_dev_makedev (tmp.stx_rdev_major, tmp.stx_rdev_minor),
>>      .st_ino = tmp.stx_ino,
>>      .st_mode = tmp.stx_mode,
>>      .st_nlink = tmp.stx_nlink,
> 
> Looks reasonable, thanks.
> 
Committed.

Thanks,
Stefan
  

Patch

diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
index 31d3253044..f968e4ef05 100644
--- a/sysdeps/unix/sysv/linux/fstatat64.c
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
@@ -53,8 +53,8 @@  fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
     return r;
 
   *buf = (struct __stat64_t64) {
-    .st_dev = makedev (tmp.stx_dev_major, tmp.stx_dev_minor),
-    .st_rdev = makedev (tmp.stx_rdev_major, tmp.stx_rdev_minor),
+    .st_dev = __gnu_dev_makedev (tmp.stx_dev_major, tmp.stx_dev_minor),
+    .st_rdev = __gnu_dev_makedev (tmp.stx_rdev_major, tmp.stx_rdev_minor),
     .st_ino = tmp.stx_ino,
     .st_mode = tmp.stx_mode,
     .st_nlink = tmp.stx_nlink,