Coder Social home page Coder Social logo

Comments (14)

dhendrix avatar dhendrix commented on May 25, 2024 1

Hello Marek,
Thanks for the report. For what it's worth aarch64 compilation generally works (for example Fedora: https://koji.fedoraproject.org/koji/buildinfo?buildID=1458754).

The issue seems to be with the architecture detection part of the Makefile. I'll take a look into it shortly.

from flashrom.

dhendrix avatar dhendrix commented on May 25, 2024

@mmahut - The issue seems to be that a compiler macro that indicates target architecture, such as __arm__ or __aarch64__, is not being defined: https://github.com/flashrom/flashrom/blob/master/platform.h#L52

I'd be surprised if this problem is only affecting flashrom compilation. Do you happen to know of other programs that have similar checks for target architecture that you can try compiling in your environment?

Also, can you run gcc -E archtest.c within the flashrom directory and paste the result somewhere? The last line should be a valid architecture. Here is what it looks like on my Raspberry Pi running Debian: https://gist.github.com/dhendrix/3e80d84898ccb57bda29b016eac43d41

Is there an easy way to bootstap a NixOS environment in qemu using a non-NixOS host? I'm trying to follow the docs on nixos.wiki, but much of it seems to assume a NixOS host.

from flashrom.

jtojnar avatar jtojnar commented on May 25, 2024

With meson (NixOS/nixpkgs#80293) the failure is different:

The Meson build system
Version: 0.52.1
Source dir: /build/flashrom-v1.2
Build dir: /build/flashrom-v1.2/build
Build type: native build
Project name: flashromutils
Project version: v1.2
C compiler for the host machine: /nix/store/ajd5q34w4gfr43r4ibcc712rqdw20d7s-gcc-wrapper-9.2.0/bin/cc (gcc 9.2.0 "gcc (GCC) 9.2.0")
C linker for the host machine: GNU ld.bfd 2.31.1
Host machine cpu family: aarch64
Host machine cpu: aarch64
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -Wno-unused-parameter -Wunused-parameter: YES
Compiler for C supports arguments -Wno-address-of-packed-member -Waddress-of-packed-member: YES
Compiler for C supports arguments -Wno-enum-conversion -Wenum-conversion: NO
Compiler for C supports arguments -Wno-missing-braces -Wmissing-braces: YES
Checking for function "clock_gettime" : YES
Checking for function "strnlen" : YES
Check usable header "sys/utsname.h" : YES
Found pkg-config: /nix/store/16c33962b8drgqi9ffzg2zbmnch0yr7q-pkg-config-0.29.2/bin/pkg-config (0.29.2)
Run-time dependency libusb-1.0 found: YES 1.0.23
Run-time dependency libpci found: YES 3.6.4
Run-time dependency libftdi1 found: YES 1.4
Build targets in project: 3
Found ninja-1.10.0 at /nix/store/lfy35ap17qb22vkcdj74903ycbc7yfgy-ninja-1.10.0/bin/ninja
meson: enabled parallel building
building
build flags: -j64 -l64
[1/140] Compiling C object 'flashrom@sha/nicrealtek.c.o'.'.K
FAILED: flashrom@sha/nicrealtek.c.o
/nix/store/ajd5q34w4gfr43r4ibcc712rqdw20d7s-gcc-wrapper-9.2.0/bin/cc -Iflashrom@sha -I. -I.. -I/nix/store/xl9rl2jglsf3pi8nyw6lpk9iyf982c2s-libusb-1.0.23-dev/include/libusb-1.0 -I/nix/store/f2idqi2s1lpkmlx133zbxly0spm0dac8-pciutils-3.6.4/include -I/nix/store/xki3sydlq6pkzmbg04xcslk3ndag6vn5-libftdi1-1.4/include/libftdi1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ 'flashrom@sha/nicrealtek.c.o' -MF 'flashrom@sha/nicrealtek.c.o.d' -o 'flashrom@sha/nicrealtek.c.o' -c ../nicrealtek.c
../nicrealtek.c:133:2: error: #error PCI port I/O access is not supported on this architecture yet.
  133 | #error PCI port I/O access is not supported on this architecture yet.
      |  ^~~~~
[2/140] Compiling C object 'flashrom@sha/satamv.c.o'.
FAILED: flashrom@sha/satamv.c.o
/nix/store/ajd5q34w4gfr43r4ibcc712rqdw20d7s-gcc-wrapper-9.2.0/bin/cc -Iflashrom@sha -I. -I.. -I/nix/store/xl9rl2jglsf3pi8nyw6lpk9iyf982c2s-libusb-1.0.23-dev/include/libusb-1.0 -I/nix/store/f2idqi2s1lpkmlx133zbxly0spm0dac8-pciutils-3.6.4/include -I/nix/store/xki3sydlq6pkzmbg04xcslk3ndag6vn5-libftdi1-1.4/include/libftdi1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ 'flashrom@sha/satamv.c.o' -MF 'flashrom@sha/satamv.c.o.d' -o 'flashrom@sha/satamv.c.o' -c ../satamv.c
../satamv.c:192:2: error: #error PCI port I/O access is not supported on this architecture yet.
  192 | #error PCI port I/O access is not supported on this architecture yet.
      |  ^~~~~
[3/140] Compiling C object 'flashrom@sha/rayer_spi.c.o'.
FAILED: flashrom@sha/rayer_spi.c.o
/nix/store/ajd5q34w4gfr43r4ibcc712rqdw20d7s-gcc-wrapper-9.2.0/bin/cc -Iflashrom@sha -I. -I.. -I/nix/store/xl9rl2jglsf3pi8nyw6lpk9iyf982c2s-libusb-1.0.23-dev/include/libusb-1.0 -I/nix/store/f2idqi2s1lpkmlx133zbxly0spm0dac8-pciutils-3.6.4/include -I/nix/store/xki3sydlq6pkzmbg04xcslk3ndag6vn5-libftdi1-1.4/include/libftdi1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ 'flashrom@sha/rayer_spi.c.o' -MF 'flashrom@sha/rayer_spi.c.o.d' -o 'flashrom@sha/rayer_spi.c.o' -c ../rayer_spi.c
../rayer_spi.c:284:2: error: #error PCI port I/O access is not supported on this architecture yet.
  284 | #error PCI port I/O access is not supported on this architecture yet.
      |  ^~~~~
[4/140] Compiling C object 'flashrom@sha/nic3com.c.o'.
FAILED: flashrom@sha/nic3com.c.o
/nix/store/ajd5q34w4gfr43r4ibcc712rqdw20d7s-gcc-wrapper-9.2.0/bin/cc -Iflashrom@sha -I. -I.. -I/nix/store/xl9rl2jglsf3pi8nyw6lpk9iyf982c2s-libusb-1.0.23-dev/include/libusb-1.0 -I/nix/store/f2idqi2s1lpkmlx133zbxly0spm0dac8-pciutils-3.6.4/include -I/nix/store/xki3sydlq6pkzmbg04xcslk3ndag6vn5-libftdi1-1.4/include/libftdi1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ 'flashrom@sha/nic3com.c.o' -MF 'flashrom@sha/nic3com.c.o.d' -o 'flashrom@sha/nic3com.c.o' -c ../nic3com.c
../nic3com.c:143:2: error: #error PCI port I/O access is not supported on this architecture yet.
  143 | #error PCI port I/O access is not supported on this architecture yet.
      |  ^~~~~
[64/140] Compiling C object 'flashrom@sha/flashrom.c.o'..o'.K
ninja: build stopped: subcommand failed.

Here is the output of gcc -E archtest.c:

# 1 "archtest.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "archtest.c"
# 1 "platform.h" 1
# 142 "platform.h"
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 1 3 4
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 3 4
# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include/stddef.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 1 3 4
# 25 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/features.h" 1 3 4
# 450 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/features.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/cdefs.h" 1 3 4
# 460 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/cdefs.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 461 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/cdefs.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/long-double.h" 1 3 4
# 462 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/cdefs.h" 2 3 4
# 451 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/features.h" 2 3 4
# 474 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/features.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/gnu/stubs.h" 1 3 4




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 6 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/gnu/stubs.h" 2 3 4


# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/gnu/stubs-lp64.h" 1 3 4
# 9 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/gnu/stubs.h" 2 3 4
# 475 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/features.h" 2 3 4
# 26 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 28 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/timesize.h" 1 3 4
# 19 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/timesize.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 20 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/timesize.h" 2 3 4
# 29 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 2 3 4



# 31 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 3 4
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;






typedef __int8_t __int_least8_t;
typedef __uint8_t __uint_least8_t;
typedef __int16_t __int_least16_t;
typedef __uint16_t __uint_least16_t;
typedef __int32_t __int_least32_t;
typedef __uint32_t __uint_least32_t;
typedef __int64_t __int_least64_t;
typedef __uint64_t __uint_least64_t;



typedef long int __quad_t;
typedef unsigned long int __u_quad_t;







typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
# 141 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/typesizes.h" 1 3 4
# 142 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/time64.h" 1 3 4
# 143 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types.h" 2 3 4


typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;

typedef int __daddr_t;
typedef int __key_t;


typedef int __clockid_t;


typedef void * __timer_t;


typedef int __blksize_t;




typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;


typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;


typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;


typedef long int __fsword_t;

typedef long int __ssize_t;


typedef long int __syscall_slong_t;

typedef unsigned long int __syscall_ulong_t;



typedef __off64_t __loff_t;
typedef char *__caddr_t;


typedef long int __intptr_t;


typedef unsigned int __socklen_t;




typedef int __sig_atomic_t;
# 30 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;


typedef __loff_t loff_t;




typedef __ino_t ino_t;
# 59 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 3 4
typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;
# 97 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 3 4
typedef __pid_t pid_t;





typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/clock_t.h" 1 3 4






typedef __clock_t clock_t;
# 127 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/clockid_t.h" 1 3 4






typedef __clockid_t clockid_t;
# 129 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/time_t.h" 1 3 4






typedef __time_t time_t;
# 130 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/timer_t.h" 1 3 4






typedef __timer_t timer_t;
# 131 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4
# 144 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 3 4
# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include/stddef.h" 1 3 4
# 209 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 145 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/stdint-intn.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/stdint-intn.h" 3 4
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
# 156 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4


typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;


typedef int register_t __attribute__ ((__mode__ (__word__)));
# 176 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/endian.h" 1 3 4
# 36 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/endian.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/endian.h" 1 3 4
# 37 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/endian.h" 2 3 4
# 60 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/endian.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/byteswap.h" 1 3 4
# 33 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/byteswap.h" 3 4
static __inline __uint16_t
__bswap_16 (__uint16_t __bsx)
{

  return __builtin_bswap16 (__bsx);



}






static __inline __uint32_t
__bswap_32 (__uint32_t __bsx)
{

  return __builtin_bswap32 (__bsx);



}
# 69 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/byteswap.h" 3 4
__extension__ static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{

  return __builtin_bswap64 (__bsx);



}
# 61 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/endian.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/uintn-identity.h" 1 3 4
# 32 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/uintn-identity.h" 3 4
static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
  return __x;
}

static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
  return __x;
}

static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
  return __x;
}
# 62 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/endian.h" 2 3 4
# 177 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4


# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 1 3 4
# 30 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/select.h" 1 3 4
# 31 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 2 3 4


# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigset_t.h" 1 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/__sigset_t.h" 1 3 4




typedef struct
{
  unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 5 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigset_t.h" 2 3 4


typedef __sigset_t sigset_t;
# 34 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/struct_timeval.h" 1 3 4







struct timeval
{
  __time_t tv_sec;
  __suseconds_t tv_usec;
};
# 38 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/struct_timespec.h" 1 3 4
# 9 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/struct_timespec.h" 3 4
struct timespec
{
  __time_t tv_sec;
  __syscall_slong_t tv_nsec;
};
# 40 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 2 3 4



typedef __suseconds_t suseconds_t;





typedef long int __fd_mask;
# 59 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 3 4
typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 91 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 3 4

# 101 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
     fd_set *__restrict __writefds,
     fd_set *__restrict __exceptfds,
     struct timeval *__restrict __timeout);
# 113 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
      fd_set *__restrict __writefds,
      fd_set *__restrict __exceptfds,
      const struct timespec *__restrict __timeout,
      const __sigset_t *__restrict __sigmask);





# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/select2.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/select2.h" 3 4
extern long int __fdelt_chk (long int __d);
extern long int __fdelt_warn (long int __d)
  __attribute__((__warning__ ("bit outside of fd_set selected")));
# 124 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/select.h" 2 3 4



# 180 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4





typedef __blksize_t blksize_t;






typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 227 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/pthreadtypes.h" 1 3 4
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/pthreadtypes.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/thread-shared-types.h" 1 3 4
# 77 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/thread-shared-types.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/pthreadtypes-arch.h" 1 3 4
# 54 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/pthreadtypes-arch.h" 3 4
struct __pthread_rwlock_arch_t
{
  unsigned int __readers;
  unsigned int __writers;
  unsigned int __wrphase_futex;
  unsigned int __writers_futex;
  unsigned int __pad3;
  unsigned int __pad4;
  int __cur_writer;
  int __shared;
  unsigned long int __pad1;
  unsigned long int __pad2;
  unsigned int __flags;
};
# 78 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/thread-shared-types.h" 2 3 4




typedef struct __pthread_internal_list
{
  struct __pthread_internal_list *__prev;
  struct __pthread_internal_list *__next;
} __pthread_list_t;
# 118 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/thread-shared-types.h" 3 4
struct __pthread_mutex_s
{
  int __lock ;
  unsigned int __count;
  int __owner;

  unsigned int __nusers;
# 148 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/thread-shared-types.h" 3 4
  int __kind;





  int __spins;
  __pthread_list_t __list;
# 165 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/thread-shared-types.h" 3 4

};




struct __pthread_cond_s
{
  __extension__ union
  {
    __extension__ unsigned long long int __wseq;
    struct
    {
      unsigned int __low;
      unsigned int __high;
    } __wseq32;
  };
  __extension__ union
  {
    __extension__ unsigned long long int __g1_start;
    struct
    {
      unsigned int __low;
      unsigned int __high;
    } __g1_start32;
  };
  unsigned int __g_refs[2] ;
  unsigned int __g_size[2];
  unsigned int __g1_orig_size;
  unsigned int __wrefs;
  unsigned int __g_signals[2];
};
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/pthreadtypes.h" 2 3 4



typedef unsigned long int pthread_t;




typedef union
{
  char __size[8];
  int __align;
} pthread_mutexattr_t;




typedef union
{
  char __size[8];
  int __align;
} pthread_condattr_t;



typedef unsigned int pthread_key_t;



typedef int pthread_once_t;


union pthread_attr_t
{
  char __size[64];
  long int __align;
};

typedef union pthread_attr_t pthread_attr_t;




typedef union
{
  struct __pthread_mutex_s __data;
  char __size[48];
  long int __align;
} pthread_mutex_t;


typedef union
{
  struct __pthread_cond_s __data;
  char __size[48];
  __extension__ long long int __align;
} pthread_cond_t;





typedef union
{
  struct __pthread_rwlock_arch_t __data;
  char __size[56];
  long int __align;
} pthread_rwlock_t;

typedef union
{
  char __size[8];
  long int __align;
} pthread_rwlockattr_t;





typedef volatile int pthread_spinlock_t;




typedef union
{
  char __size[32];
  long int __align;
} pthread_barrier_t;

typedef union
{
  char __size[8];
  int __align;
} pthread_barrierattr_t;
# 228 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/types.h" 2 3 4



# 26 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 2 3 4
# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/limits.h" 1 3 4
# 34 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/limits.h" 3 4
# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/syslimits.h" 1 3 4






# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/limits.h" 1 3 4
# 194 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/limits.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/limits.h" 1 3 4
# 26 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/limits.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/libc-header-start.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/limits.h" 2 3 4
# 183 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/limits.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/posix1_lim.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/posix1_lim.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 28 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/posix1_lim.h" 2 3 4
# 161 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/posix1_lim.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/local_lim.h" 1 3 4
# 39 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/local_lim.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/limits.h" 1 3 4
# 40 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/local_lim.h" 2 3 4
# 162 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/posix1_lim.h" 2 3 4
# 184 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/limits.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/posix2_lim.h" 1 3 4
# 188 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/limits.h" 2 3 4
# 195 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/limits.h" 2 3 4
# 8 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/syslimits.h" 2 3 4
# 35 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include-fixed/limits.h" 2 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/signum.h" 1 3 4
# 26 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/signum.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/signum-generic.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/signum.h" 2 3 4
# 31 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sig_atomic_t.h" 1 3 4







typedef __sig_atomic_t sig_atomic_t;
# 33 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4
# 57 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/siginfo_t.h" 1 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 5 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/siginfo_t.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/__sigval_t.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/__sigval_t.h" 3 4
union sigval
{
  int sival_int;
  void *sival_ptr;
};

typedef union sigval __sigval_t;
# 7 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/siginfo_t.h" 2 3 4
# 16 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/siginfo_t.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/siginfo-arch.h" 1 3 4
# 17 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/siginfo_t.h" 2 3 4
# 36 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/siginfo_t.h" 3 4
typedef struct
  {
    int si_signo;

    int si_errno;

    int si_code;





    int __pad0;


    union
      {
 int _pad[((128 / sizeof (int)) - 4)];


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
   } _kill;


 struct
   {
     int si_tid;
     int si_overrun;
     __sigval_t si_sigval;
   } _timer;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     __sigval_t si_sigval;
   } _rt;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     int si_status;
     __clock_t si_utime;
     __clock_t si_stime;
   } _sigchld;


 struct
   {
     void *si_addr;

     short int si_addr_lsb;
     union
       {

  struct
    {
      void *_lower;
      void *_upper;
    } _addr_bnd;

  __uint32_t _pkey;
       } _bounds;
   } _sigfault;


 struct
   {
     long int si_band;
     int si_fd;
   } _sigpoll;



 struct
   {
     void *_call_addr;
     int _syscall;
     unsigned int _arch;
   } _sigsys;

      } _sifields;
  } siginfo_t ;
# 58 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/siginfo-consts.h" 1 3 4
# 35 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/siginfo-consts.h" 3 4
enum
{
  SI_ASYNCNL = -60,
  SI_DETHREAD = -7,

  SI_TKILL,
  SI_SIGIO,

  SI_ASYNCIO,
  SI_MESGQ,
  SI_TIMER,





  SI_QUEUE,
  SI_USER,
  SI_KERNEL = 0x80
# 66 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/siginfo-consts.h" 3 4
};




enum
{
  ILL_ILLOPC = 1,

  ILL_ILLOPN,

  ILL_ILLADR,

  ILL_ILLTRP,

  ILL_PRVOPC,

  ILL_PRVREG,

  ILL_COPROC,

  ILL_BADSTK,

  ILL_BADIADDR

};


enum
{
  FPE_INTDIV = 1,

  FPE_INTOVF,

  FPE_FLTDIV,

  FPE_FLTOVF,

  FPE_FLTUND,

  FPE_FLTRES,

  FPE_FLTINV,

  FPE_FLTSUB,

  FPE_FLTUNK = 14,

  FPE_CONDTRAP

};


enum
{
  SEGV_MAPERR = 1,

  SEGV_ACCERR,

  SEGV_BNDERR,

  SEGV_PKUERR,

  SEGV_ACCADI,

  SEGV_ADIDERR,

  SEGV_ADIPERR

};


enum
{
  BUS_ADRALN = 1,

  BUS_ADRERR,

  BUS_OBJERR,

  BUS_MCEERR_AR,

  BUS_MCEERR_AO

};
# 172 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/siginfo-consts.h" 3 4
enum
{
  CLD_EXITED = 1,

  CLD_KILLED,

  CLD_DUMPED,

  CLD_TRAPPED,

  CLD_STOPPED,

  CLD_CONTINUED

};


enum
{
  POLL_IN = 1,

  POLL_OUT,

  POLL_MSG,

  POLL_ERR,

  POLL_PRI,

  POLL_HUP

};
# 59 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigval_t.h" 1 3 4
# 16 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigval_t.h" 3 4
typedef __sigval_t sigval_t;
# 63 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigevent_t.h" 1 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/wordsize.h" 1 3 4
# 5 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigevent_t.h" 2 3 4
# 22 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/sigevent_t.h" 3 4
typedef struct sigevent
  {
    __sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
 int _pad[((64 / sizeof (int)) - 4)];



 __pid_t _tid;

 struct
   {
     void (*_function) (__sigval_t);
     pthread_attr_t *_attribute;
   } _sigev_thread;
      } _sigev_un;
  } sigevent_t;
# 67 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigevent-consts.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigevent-consts.h" 3 4
enum
{
  SIGEV_SIGNAL = 0,

  SIGEV_NONE,

  SIGEV_THREAD,


  SIGEV_THREAD_ID = 4


};
# 68 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4




typedef void (*__sighandler_t) (int);




extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));
# 88 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
extern __sighandler_t signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));
# 112 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__));






extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__));



extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__));



extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ , __leaf__));
extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));




extern void psignal (int __sig, const char *__s);


extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
# 170 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));


extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));


extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
# 190 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
typedef __sighandler_t sig_t;





extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int sigismember (const sigset_t *__set, int __signo)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 226 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigaction.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigaction.h" 3 4
struct sigaction
  {


    union
      {

 __sighandler_t sa_handler;

 void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;







    __sigset_t sa_mask;


    int sa_flags;


    void (*sa_restorer) (void);
  };
# 227 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4


extern int sigprocmask (int __how, const sigset_t *__restrict __set,
   sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__));






extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1)));


extern int sigaction (int __sig, const struct sigaction *__restrict __act,
        struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__));


extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));







extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
     __attribute__ ((__nonnull__ (1, 2)));







extern int sigwaitinfo (const sigset_t *__restrict __set,
   siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));






extern int sigtimedwait (const sigset_t *__restrict __set,
    siginfo_t *__restrict __info,
    const struct timespec *__restrict __timeout)
     __attribute__ ((__nonnull__ (1)));



extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
     __attribute__ ((__nothrow__ , __leaf__));
# 286 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
extern const char *const _sys_siglist[(64 + 1)];
extern const char *const sys_siglist[(64 + 1)];



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigcontext.h" 1 3 4
# 30 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigcontext.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/sigcontext.h" 1 3 4
# 22 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/sigcontext.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/types.h" 1 3 4




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/types.h" 1 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/types.h" 1 3 4






# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/int-ll64.h" 1 3 4
# 12 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/int-ll64.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/bitsperlong.h" 1 3 4
# 22 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/bitsperlong.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/bitsperlong.h" 1 3 4
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/bitsperlong.h" 2 3 4
# 13 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/int-ll64.h" 2 3 4







typedef __signed__ char __s8;
typedef unsigned char __u8;

typedef __signed__ short __s16;
typedef unsigned short __u16;

typedef __signed__ int __s32;
typedef unsigned int __u32;


__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
# 8 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/types.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/types.h" 2 3 4
# 6 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/types.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/posix_types.h" 1 3 4




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/stddef.h" 1 3 4
# 6 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/posix_types.h" 2 3 4
# 25 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/posix_types.h" 3 4
typedef struct {
 unsigned long fds_bits[1024 / (8 * sizeof(long))];
} __kernel_fd_set;


typedef void (*__kernel_sighandler_t)(int);


typedef int __kernel_key_t;
typedef int __kernel_mqd_t;

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/posix_types.h" 1 3 4




typedef unsigned short __kernel_old_uid_t;
typedef unsigned short __kernel_old_gid_t;


# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/posix_types.h" 1 3 4
# 15 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/posix_types.h" 3 4
typedef long __kernel_long_t;
typedef unsigned long __kernel_ulong_t;



typedef __kernel_ulong_t __kernel_ino_t;



typedef unsigned int __kernel_mode_t;



typedef int __kernel_pid_t;



typedef int __kernel_ipc_pid_t;



typedef unsigned int __kernel_uid_t;
typedef unsigned int __kernel_gid_t;



typedef __kernel_long_t __kernel_suseconds_t;



typedef int __kernel_daddr_t;



typedef unsigned int __kernel_uid32_t;
typedef unsigned int __kernel_gid32_t;
# 59 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/posix_types.h" 3 4
typedef unsigned int __kernel_old_dev_t;
# 72 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/posix_types.h" 3 4
typedef __kernel_ulong_t __kernel_size_t;
typedef __kernel_long_t __kernel_ssize_t;
typedef __kernel_long_t __kernel_ptrdiff_t;




typedef struct {
 int val[2];
} __kernel_fsid_t;





typedef __kernel_long_t __kernel_off_t;
typedef long long __kernel_loff_t;
typedef __kernel_long_t __kernel_time_t;
typedef long long __kernel_time64_t;
typedef __kernel_long_t __kernel_clock_t;
typedef int __kernel_timer_t;
typedef int __kernel_clockid_t;
typedef char * __kernel_caddr_t;
typedef unsigned short __kernel_uid16_t;
typedef unsigned short __kernel_gid16_t;
# 10 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/posix_types.h" 2 3 4
# 37 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/posix_types.h" 2 3 4
# 10 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/types.h" 2 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/types.h" 3 4
typedef __u16 __le16;
typedef __u16 __be16;
typedef __u32 __le32;
typedef __u32 __be32;
typedef __u64 __le64;
typedef __u64 __be64;

typedef __u16 __sum16;
typedef __u32 __wsum;
# 47 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/types.h" 3 4
typedef unsigned __poll_t;
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/sigcontext.h" 2 3 4





struct sigcontext {
 __u64 fault_address;

 __u64 regs[31];
 __u64 sp;
 __u64 pc;
 __u64 pstate;

 __u8 __reserved[4096] __attribute__((__aligned__(16)));
};
# 66 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/sigcontext.h" 3 4
struct _aarch64_ctx {
 __u32 magic;
 __u32 size;
};



struct fpsimd_context {
 struct _aarch64_ctx head;
 __u32 fpsr;
 __u32 fpcr;
 __uint128_t vregs[32];
};




struct esr_context {
 struct _aarch64_ctx head;
 __u64 esr;
};
# 116 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/sigcontext.h" 3 4
struct extra_context {
 struct _aarch64_ctx head;
 __u64 datap;
 __u32 size;
 __u32 __reserved[3];
};



struct sve_context {
 struct _aarch64_ctx head;
 __u16 vl;
 __u16 __reserved[3];
};
# 31 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigcontext.h" 2 3 4



# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include/stddef.h" 1 3 4
# 35 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigcontext.h" 2 3 4
# 292 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4


extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__));






# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include/stddef.h" 1 3 4
# 302 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/stack_t.h" 1 3 4
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/stack_t.h" 3 4
# 1 "/nix/store/q1ahyi3cci0dmhgcvk8ikvgnz00zg8zf-gcc-9.2.0/lib/gcc/aarch64-unknown-linux-gnu/9.2.0/include/stddef.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/stack_t.h" 2 3 4


typedef struct
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 304 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4


# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/ucontext.h" 1 3 4
# 36 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/ucontext.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 1 3 4
# 33 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/time.h" 1 3 4
# 34 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/time.h" 3 4

# 52 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/time.h" 3 4
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 68 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
    __timezone_ptr_t __tz) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));




extern int settimeofday (const struct timeval *__tv,
    const struct timezone *__tz)
     __attribute__ ((__nothrow__ , __leaf__));





extern int adjtime (const struct timeval *__delta,
      struct timeval *__olddelta) __attribute__ ((__nothrow__ , __leaf__));




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };






typedef int __itimer_which_t;




extern int getitimer (__itimer_which_t __which,
        struct itimerval *__value) __attribute__ ((__nothrow__ , __leaf__));




extern int setitimer (__itimer_which_t __which,
        const struct itimerval *__restrict __new,
        struct itimerval *__restrict __old) __attribute__ ((__nothrow__ , __leaf__));




extern int utimes (const char *__file, const struct timeval __tvp[2])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));



extern int lutimes (const char *__file, const struct timeval __tvp[2])
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));


extern int futimes (int __fd, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__));
# 186 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/time.h" 3 4

# 34 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 2 3 4

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/user.h" 1 3 4
# 22 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/user.h" 3 4
struct user_regs_struct
{
  unsigned long long regs[31];
  unsigned long long sp;
  unsigned long long pc;
  unsigned long long pstate;
};

struct user_fpsimd_struct
{
  __uint128_t vregs[32];
  unsigned int fpsr;
  unsigned int fpcr;
};
# 36 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 2 3 4




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs.h" 1 3 4
# 25 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs.h" 3 4
typedef __uint64_t elf_greg_t;






typedef elf_greg_t elf_gregset_t[(sizeof (struct user_regs_struct) / sizeof (elf_greg_t))];


typedef struct user_fpsimd_struct elf_fpregset_t;
# 41 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 2 3 4



# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs-id.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs-id.h" 3 4
typedef unsigned int __pr_uid_t;
typedef unsigned int __pr_gid_t;
# 45 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 2 3 4




struct elf_siginfo
  {
    int si_signo;
    int si_code;
    int si_errno;
  };
# 63 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 3 4
struct elf_prstatus
  {
    struct elf_siginfo pr_info;
    short int pr_cursig;
    unsigned long int pr_sigpend;
    unsigned long int pr_sighold;
    __pid_t pr_pid;
    __pid_t pr_ppid;
    __pid_t pr_pgrp;
    __pid_t pr_sid;
    struct timeval pr_utime;
    struct timeval pr_stime;
    struct timeval pr_cutime;
    struct timeval pr_cstime;
    elf_gregset_t pr_reg;
    int pr_fpvalid;
  };




struct elf_prpsinfo
  {
    char pr_state;
    char pr_sname;
    char pr_zomb;
    char pr_nice;
    unsigned long int pr_flag;
    __pr_uid_t pr_uid;
    __pr_gid_t pr_gid;
    int pr_pid, pr_ppid, pr_pgrp, pr_sid;

    char pr_fname[16];
    char pr_psargs[(80)];
  };






typedef void *psaddr_t;

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs-prregset.h" 1 3 4
# 24 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs-prregset.h" 3 4
typedef elf_gregset_t __prgregset_t;
typedef elf_fpregset_t __prfpregset_t;
# 107 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 2 3 4


typedef __prgregset_t prgregset_t;
typedef __prfpregset_t prfpregset_t;



typedef __pid_t lwpid_t;


typedef struct elf_prstatus prstatus_t;
typedef struct elf_prpsinfo prpsinfo_t;





# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/procfs-extra.h" 1 3 4
# 125 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/procfs.h" 2 3 4
# 37 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/ucontext.h" 2 3 4


typedef elf_greg_t greg_t;


typedef elf_gregset_t gregset_t;


typedef elf_fpregset_t fpregset_t;






typedef struct
  {
    unsigned long long int fault_address;
    unsigned long long int regs[31];
    unsigned long long int sp;
    unsigned long long int pc;
    unsigned long long int pstate;




    unsigned char __reserved[4096] __attribute__ ((__aligned__ (16)));
  } mcontext_t;


typedef struct ucontext_t
  {
    unsigned long uc_flags;
    struct ucontext_t *uc_link;
    stack_t uc_stack;
    sigset_t uc_sigmask;
    mcontext_t uc_mcontext;
  } ucontext_t;
# 307 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4







extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__));

# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigstack.h" 1 3 4
# 317 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/ss_flags.h" 1 3 4
# 27 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/ss_flags.h" 3 4
enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};
# 318 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4



extern int sigaltstack (const stack_t *__restrict __ss,
   stack_t *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__));




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/struct_sigstack.h" 1 3 4
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/types/struct_sigstack.h" 3 4
struct sigstack
  {
    void *ss_sp;
    int ss_onstack;
  };
# 328 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4







extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
     __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
# 359 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigthread.h" 1 3 4
# 31 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/sigthread.h" 3 4
extern int pthread_sigmask (int __how,
       const __sigset_t *__restrict __newmask,
       __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__));


extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__));
# 360 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4






extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__));

extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__));





# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/signal_ext.h" 1 3 4
# 375 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/signal.h" 2 3 4


# 29 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 2 3 4


# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/param.h" 1 3 4
# 28 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/param.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/param.h" 1 3 4




# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/param.h" 1 3 4
# 22 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/param.h" 3 4
# 1 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm-generic/param.h" 1 3 4
# 23 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/asm/param.h" 2 3 4
# 6 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/linux/param.h" 2 3 4
# 29 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/bits/param.h" 2 3 4
# 32 "/nix/store/cvxy9dsgx9fbfq4hgkgi4faj25lb7dwa-glibc-2.30-dev/include/sys/param.h" 2 3 4
# 143 "platform.h" 2
# 2 "archtest.c" 2

# 2 "archtest.c"
"arm"

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

I'm being affected by the same issue. Here's some additional notes:

The build system of flashrom doesn't seem familiar to me – is the Makefile hand-crafted or is it generated by something?

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

So, some more notes. First of all,

The issue seems to be that a compiler macro that indicates target architecture, such as arm or aarch64, is not being defined: https://github.com/flashrom/flashrom/blob/master/platform.h#L52

This doesn't seem to be true, the macro is defined at least on my system.

Tried building 1.2 with the Makefile (not using meson). It fails here: https://github.com/flashrom/flashrom/blob/1.2.x/Makefile#L1185
... and the reason it fails is because the make variable ARCH contains unexpected contents. I edited the Makefile to print it, it's:

bit outside of fd_set selected arm

What that means, is beyond me.

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

An explanation for this value. From here, of the Makefile:

override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"'))

Take cat archtest.log | grep -v '^\#' | grep '"' | cut -f 2 -d'"', where archtest.log is the log pasted earlier in this thread. The result is:

bit outside of fd_set selected
arm

from flashrom.

jtojnar avatar jtojnar commented on May 25, 2024

Looks like some compiler warning. What do you get if you do not cut it?

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

I now have a patch that fixes the problem. I'm trying to figure out how to submit it currently, but the instructions here don't work: https://www.flashrom.org/Development_Guidelines#Using_Github

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

Managed to submit it! https://review.coreboot.org/c/flashrom/+/43140 The wiki seemed to have the repo address a bit wrong; not: git remote add -f upstream ssh://<gerrit_username>@review.coreboot.org:29418/flashrom.git. but git remote add -f upstream ssh://<gerrit_username>@review.coreboot.org:29418/flashrom.

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

@jtojnar The output parsing script at first strips the lines starting with #, which seem to be preprocessor "stack" annotations; however, after that, it just finds lines with " which seems like a dangerously non-robust parsing method. Here, this line also happens to match: __attribute__((__warning__ ("bit outside of fd_set selected")));, which explains the error.

To me, this seems just an oversight in the output parsing, and the binary built with my patch seems to function fine, but if there's something about the warning that should be taken into account, please inform me. (P.S. as archtest.c is only preprocessed, not compiled, this seems like a harmless thing; not an actual warning, but a thing that would cause a warning if the defined item would be referenced during compilation.)

from flashrom.

dhendrix avatar dhendrix commented on May 25, 2024

Managed to submit it! https://review.coreboot.org/c/flashrom/+/43140 The wiki seemed to have the repo address a bit wrong; not: git remote add -f upstream ssh://<gerrit_username>@review.coreboot.org:29418/flashrom.git. but git remote add -f upstream ssh://<gerrit_username>@review.coreboot.org:29418/flashrom.

Thanks for pointing that out, I've fixed the wiki (hopefully).

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

Thanks! Btw. about the patch, I'm going to fix it during the following days, hopefully it sticks.

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

https://review.coreboot.org/c/flashrom/+/43140 Sorry, no luck yet. It's been reviewed a long time ago, but nobody seems to go and merge it...

from flashrom.

golddranks avatar golddranks commented on May 25, 2024

My PR was merged, so this will be fixed eventually. No idea when the next release is, though.

from flashrom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.