ACTION 4
CODE 8
+Dl_info 16
ENTRY 8
Elf32_Addr 4
Elf32_Conflict 4
Elf64_auxv_t 16
Elf_Options 8
Elf_Options_Hw 8
+Elf_Symndx 4
HEADER 12
+Sg_io_hdr 64
+Sg_req_info 20
+Sg_scsi_id 32
VISIT 4
_Bool 1
__uint16_t 2
cc_t 1
clock_t 4
clockid_t 4
+comp_t 2
dev_t 8
div_t 8
double 8
+double_t 12
elf_fpregset_t 108
+elf_fpxregset_t 512
elf_greg_t 4
elf_gregset_t 68
epoll_data_t 8
fenv_t 28
fexcept_t 2
float 4
+float_t 12
fpos_t 16
+fpregset_t 4
fsblkcnt_t 8
fsfilcnt_t 8
fsid_t 8
gid_t 4
glob_t 36
+greg_t 4
+gregset_t 76
iconv_t 4
id_t 4
idtype_t 4
mqd_t 4
msglen_t 4
msgqnum_t 4
+n_long 4
+n_short 2
+n_time 4
nfds_t 4
nl_catd 4
nl_item 4
res_state 4
rlim_t 8
sa_family_t 2
-scrnmap_t 1
sem_t 16
+sg_io_hdr_t 64
+sg_iovec_t 8
+sg_req_info_t 20
short 2
sig_atomic_t 4
+sig_t 4
sighandler_t 4
siginfo_t 128
sigjmp_buf 156
struct __ns_msg 48
struct __ns_rr 1044
struct __res_state 512
+struct _fpstate 624
struct _ns_flagdata 8
+struct acct 64
+struct acct_v3 64
struct addrinfo 32
struct aiocb 144
+struct ar_hdr 60
struct arpd_request 28
struct arphdr 8
struct arpreq 68
struct arpreq_old 52
struct bandinfo 8
+struct ccs_modesel_head 12
struct cmsghdr 12
-struct console_font_op 24
-struct consolefontdesc 8
+struct crypt_data 131228
struct dirent 276
+struct dl_phdr_info 40
struct elf_prpsinfo 124
struct elf_prstatus 144
struct elf_siginfo 12
struct ether_arp 28
struct ether_header 14
struct ethhdr 14
-struct fb_bitfield 12
-struct fb_cmap 24
-struct fb_con2fbmap 8
-struct fb_copyarea 24
-struct fb_cursor 72
-struct fb_fillrect 24
-struct fb_fix_screeninfo 68
-struct fb_image 56
-struct fb_var_screeninfo 160
-struct fb_vblank 32
-struct fbcurpos 4
+struct f_owner_ex 8
struct flock 24
struct group 16
struct hostent 20
struct ipv6_mreq 20
struct itimerspec 16
struct itimerval 16
-struct kbd_repeat 8
-struct kbdiacr 3
-struct kbdiacrs 772
-struct kbentry 4
-struct kbkeycode 8
-struct kbsentry 513
+struct lastlog 292
struct lconv 56
struct linger 8
-struct loop_info 140
-struct loop_info64 232
+struct link_map 20
struct mld_hdr 24
struct mntent 24
struct mq_attr 32
+struct msgbuf 8
struct msghdr 28
struct msginfo 32
struct msqid_ds 88
+struct mt_tape_info 8
+struct mtconfiginfo 32
+struct mtget 28
+struct mtop 8
+struct mtpos 4
struct nd_neighbor_advert 24
struct nd_neighbor_solicit 24
struct nd_opt_adv_interval 8
struct pollfd 8
struct protoent 12
struct qelem 12
+struct r_debug 20
struct res_sym 12
struct rlimit 16
struct rr_pco_match 24
struct semid_ds 64
struct seminfo 40
struct servent 16
+struct sg_header 36
+struct sg_io_hdr 64
+struct sg_iovec 8
+struct sg_req_info 20
+struct sg_scsi_id 32
struct shm_info 24
struct shmid_ds 84
struct shminfo 36
struct tms 16
struct ucred 12
struct udphdr 8
-struct unimapdesc 8
-struct unimapinit 6
-struct unipair 4
struct user 284
struct user_fpregs_struct 108
struct user_fpxregs_struct 512
struct utimbuf 8
struct utmpx 384
struct utsname 390
-struct vt_consize 12
-struct vt_mode 8
-struct vt_sizes 6
-struct vt_stat 6
struct winsize 8
suseconds_t 4
tcflag_t 4
---- sizeof.glibc.i386 2011-09-22 20:07:14.000000000 +0200
-+++ sizeof.musl.i386 2011-09-22 20:07:14.000000000 +0200
-@@ -80,3 +80,3 @@
+--- data/glibc.sizeof 2013-02-26 10:10:32.000000000 +0100
++++ data/musl.sizeof 2013-02-26 10:10:32.000000000 +0100
+@@ -88,3 +88,3 @@
fd_set 128
-fenv_t 28
+fenv_t 32
fexcept_t 2
-@@ -167,3 +167,3 @@
+@@ -123,3 +123,3 @@
+ intptr_t 4
+-jmp_buf 156
++jmp_buf 24
+ key_t 4
+@@ -182,3 +182,3 @@
quad_t 8
-regex_t 32
+regex_t 28
register_t 4
-@@ -313,4 +313,4 @@
+@@ -209,3 +209,3 @@
+ struct __res_state 512
+-struct _fpstate 624
++struct _fpstate 112
+ struct _ns_flagdata 8
+@@ -223,3 +223,3 @@
+ struct cmsghdr 12
+-struct crypt_data 131228
++struct crypt_data 260
+ struct dirent 276
+@@ -327,4 +327,4 @@
struct rtentry 84
-struct rusage 72
-struct sched_param 4
+struct rusage 136
+struct sched_param 28
struct sembuf 6
-@@ -330,3 +330,3 @@
+@@ -349,3 +349,3 @@
struct sockaddr_ll 20
-struct sockaddr_storage 128
+struct sockaddr_storage 132
struct sockaddr_un 110
-@@ -343,3 +343,3 @@
+@@ -362,3 +362,3 @@
struct strrecvfd 20
-struct sysinfo 64
-+struct sysinfo 348
++struct sysinfo 312
struct termios 60
ACTION 4
CODE 8
+Dl_info 16
ENTRY 8
Elf32_Addr 4
Elf32_Conflict 4
Elf64_auxv_t 16
Elf_Options 8
Elf_Options_Hw 8
+Elf_Symndx 4
HEADER 12
+Sg_io_hdr 64
+Sg_req_info 20
+Sg_scsi_id 32
VISIT 4
_Bool 1
__uint16_t 2
cc_t 1
clock_t 4
clockid_t 4
+comp_t 2
dev_t 8
div_t 8
double 8
+double_t 12
elf_fpregset_t 108
+elf_fpxregset_t 512
elf_greg_t 4
elf_gregset_t 68
epoll_data_t 8
fenv_t 32
fexcept_t 2
float 4
+float_t 12
fpos_t 16
+fpregset_t 4
fsblkcnt_t 8
fsfilcnt_t 8
fsid_t 8
gid_t 4
glob_t 36
+greg_t 4
+gregset_t 76
iconv_t 4
id_t 4
idtype_t 4
int_least8_t 1
intmax_t 8
intptr_t 4
-jmp_buf 156
+jmp_buf 24
key_t 4
ldiv_t 8
lldiv_t 16
mqd_t 4
msglen_t 4
msgqnum_t 4
+n_long 4
+n_short 2
+n_time 4
nfds_t 4
nl_catd 4
nl_item 4
res_state 4
rlim_t 8
sa_family_t 2
-scrnmap_t 1
sem_t 16
+sg_io_hdr_t 64
+sg_iovec_t 8
+sg_req_info_t 20
short 2
sig_atomic_t 4
+sig_t 4
sighandler_t 4
siginfo_t 128
sigjmp_buf 156
struct __ns_msg 48
struct __ns_rr 1044
struct __res_state 512
+struct _fpstate 112
struct _ns_flagdata 8
+struct acct 64
+struct acct_v3 64
struct addrinfo 32
struct aiocb 144
+struct ar_hdr 60
struct arpd_request 28
struct arphdr 8
struct arpreq 68
struct arpreq_old 52
struct bandinfo 8
+struct ccs_modesel_head 12
struct cmsghdr 12
-struct console_font_op 24
-struct consolefontdesc 8
+struct crypt_data 260
struct dirent 276
+struct dl_phdr_info 40
struct elf_prpsinfo 124
struct elf_prstatus 144
struct elf_siginfo 12
struct ether_arp 28
struct ether_header 14
struct ethhdr 14
-struct fb_bitfield 12
-struct fb_cmap 24
-struct fb_con2fbmap 8
-struct fb_copyarea 24
-struct fb_cursor 72
-struct fb_fillrect 24
-struct fb_fix_screeninfo 68
-struct fb_image 56
-struct fb_var_screeninfo 160
-struct fb_vblank 32
-struct fbcurpos 4
+struct f_owner_ex 8
struct flock 24
struct group 16
struct hostent 20
struct ipv6_mreq 20
struct itimerspec 16
struct itimerval 16
-struct kbd_repeat 8
-struct kbdiacr 3
-struct kbdiacrs 772
-struct kbentry 4
-struct kbkeycode 8
-struct kbsentry 513
+struct lastlog 292
struct lconv 56
struct linger 8
-struct loop_info 140
-struct loop_info64 232
+struct link_map 20
struct mld_hdr 24
struct mntent 24
struct mq_attr 32
+struct msgbuf 8
struct msghdr 28
struct msginfo 32
struct msqid_ds 88
+struct mt_tape_info 8
+struct mtconfiginfo 32
+struct mtget 28
+struct mtop 8
+struct mtpos 4
struct nd_neighbor_advert 24
struct nd_neighbor_solicit 24
struct nd_opt_adv_interval 8
struct pollfd 8
struct protoent 12
struct qelem 12
+struct r_debug 20
struct res_sym 12
struct rlimit 16
struct rr_pco_match 24
struct semid_ds 64
struct seminfo 40
struct servent 16
+struct sg_header 36
+struct sg_io_hdr 64
+struct sg_iovec 8
+struct sg_req_info 20
+struct sg_scsi_id 32
struct shm_info 24
struct shmid_ds 84
struct shminfo 36
struct strioctl 16
struct strpeek 28
struct strrecvfd 20
-struct sysinfo 348
+struct sysinfo 312
struct termios 60
struct timespec 8
struct timestamp 40
struct tms 16
struct ucred 12
struct udphdr 8
-struct unimapdesc 8
-struct unimapinit 6
-struct unipair 4
struct user 284
struct user_fpregs_struct 108
struct user_fpxregs_struct 512
struct utimbuf 8
struct utmpx 384
struct utsname 390
-struct vt_consize 12
-struct vt_mode 8
-struct vt_sizes 6
-struct vt_stat 6
struct winsize 8
suseconds_t 4
tcflag_t 4
#define _FILE_OFFSET_BITS 64
#define SYSLOG_NAMES 1
#include <stddef.h>
+#include <stdio.h>
#include <sys/types.h>
#include <aio.h>
#include <alloca.h>
+#include <ar.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <arpa/telnet.h>
#include <assert.h>
#include <byteswap.h>
+#include <complex.h>
#include <cpio.h>
+#include <crypt.h>
#include <ctype.h>
#include <dirent.h>
#include <dlfcn.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
-//#include <features.h>
+#include <features.h>
#include <fenv.h>
#include <float.h>
#include <fnmatch.h>
#include <inttypes.h>
#include <iso646.h>
#include <langinfo.h>
+#include <lastlog.h>
#include <libgen.h>
#include <libintl.h>
#include <limits.h>
-#include <linux/fb.h>
-#include <linux/kd.h>
-#include <linux/loop.h>
-#include <linux/version.h>
-#include <linux/vt.h>
+#include <link.h>
#include <locale.h>
#include <malloc.h>
#include <math.h>
+#include <memory.h>
#include <mntent.h>
+#include <monetary.h>
#include <mqueue.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <netinet/icmp6.h>
#include <netinet/if_ether.h>
#include <netinet/in.h>
+#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/ip6.h>
#include <netinet/ip_icmp.h>
#include <regex.h>
#include <resolv.h>
#include <sched.h>
+#include <scsi/scsi.h>
+#include <scsi/sg.h>
#include <search.h>
#include <semaphore.h>
#include <setjmp.h>
#include <shadow.h>
#include <signal.h>
#include <spawn.h>
+//#include <stdalign.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <stdio_ext.h>
#include <stdlib.h>
+//#include <stdnoreturn.h>
#include <string.h>
#include <strings.h>
#include <stropts.h>
+#include <sys/acct.h>
+//#include <sys/cachectl.h>
#include <sys/epoll.h>
#include <sys/eventfd.h>
#include <sys/file.h>
+#include <sys/fsuid.h>
#include <sys/inotify.h>
+#include <sys/io.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/kd.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/msg.h>
+#include <sys/mtio.h>
#include <sys/param.h>
+#include <sys/personality.h>
#include <sys/poll.h>
#include <sys/prctl.h>
#include <sys/procfs.h>
#include <sys/syslog.h>
#include <sys/sysmacros.h>
#include <sys/time.h>
+#include <sys/timerfd.h>
#include <sys/times.h>
#include <sys/timex.h>
#include <sys/types.h>
#include <sys/vfs.h>
#include <sys/vt.h>
#include <sys/wait.h>
+#include <sys/xattr.h>
+#include <syscall.h>
#include <sysexits.h>
#include <syslog.h>
#include <tar.h>
#include <termios.h>
+#include <tgmath.h>
#include <time.h>
#include <ucontext.h>
#include <ulimit.h>
#include <utime.h>
#include <utmp.h>
#include <utmpx.h>
+#include <values.h>
#include <wchar.h>
#include <wctype.h>
#include <wordexp.h>
p(ACTION)
p(CODE)
//p(DIR)
+p(Dl_info)
p(ENTRY)
p(Elf32_Addr)
p(Elf32_Conflict)
p(Elf64_auxv_t)
p(Elf_Options)
p(Elf_Options_Hw)
+p(Elf_Symndx)
//p(FILE)
p(HEADER)
+p(Sg_io_hdr)
+//p(Sg_io_vec)
+p(Sg_req_info)
+p(Sg_scsi_id)
p(VISIT)
p(_Bool)
p(__uint16_t)
p(cc_t)
p(clock_t)
p(clockid_t)
+p(comp_t)
p(dev_t)
p(div_t)
p(double)
+p(double_t)
p(elf_fpregset_t)
-//p(elf_fpxregset_t)
+p(elf_fpxregset_t)
p(elf_greg_t)
p(elf_gregset_t)
p(epoll_data_t)
p(fenv_t)
p(fexcept_t)
p(float)
+p(float_t)
p(fpos_t)
+p(fpregset_t)
p(fsblkcnt_t)
p(fsfilcnt_t)
p(fsid_t)
p(gid_t)
p(glob_t)
+p(greg_t)
+p(gregset_t)
p(iconv_t)
p(id_t)
p(idtype_t)
p(mqd_t)
p(msglen_t)
p(msgqnum_t)
+p(n_long)
+p(n_short)
+p(n_time)
p(nfds_t)
p(nl_catd)
p(nl_item)
p(res_state)
p(rlim_t)
p(sa_family_t)
-p(scrnmap_t)
p(sem_t)
+p(sg_io_hdr_t)
+p(sg_iovec_t)
+p(sg_req_info_t)
p(short)
p(sig_atomic_t)
+p(sig_t)
p(sighandler_t)
p(siginfo_t)
p(sigjmp_buf)
p(stack_t)
p(struct FTW)
//p(struct __CODE)
-//p(struct __fpstate)
p(struct __ns_msg)
p(struct __ns_rr)
//p(struct __ptcb)
p(struct __res_state)
//p(struct __siginfo)
+//p(struct __sigjmp_buf)
//p(struct __ucontext)
+p(struct _fpstate)
p(struct _ns_flagdata)
+p(struct acct)
+p(struct acct_v3)
p(struct addrinfo)
p(struct aiocb)
+p(struct ar_hdr)
p(struct arpd_request)
p(struct arphdr)
p(struct arpreq)
p(struct arpreq_old)
p(struct bandinfo)
+p(struct ccs_modesel_head)
p(struct cmsghdr)
-p(struct console_font_op)
-p(struct consolefontdesc)
+p(struct crypt_data)
p(struct dirent)
+p(struct dl_phdr_info)
p(struct elf_prpsinfo)
p(struct elf_prstatus)
p(struct elf_siginfo)
p(struct ether_arp)
p(struct ether_header)
p(struct ethhdr)
-p(struct fb_bitfield)
-p(struct fb_cmap)
-p(struct fb_con2fbmap)
-p(struct fb_copyarea)
-p(struct fb_cursor)
-p(struct fb_fillrect)
-p(struct fb_fix_screeninfo)
-p(struct fb_image)
-p(struct fb_var_screeninfo)
-p(struct fb_vblank)
-p(struct fbcurpos)
+p(struct f_owner_ex)
p(struct flock)
p(struct group)
p(struct hostent)
p(struct ipv6_mreq)
p(struct itimerspec)
p(struct itimerval)
-p(struct kbd_repeat)
-p(struct kbdiacr)
-p(struct kbdiacrs)
-p(struct kbentry)
-p(struct kbkeycode)
-p(struct kbsentry)
+p(struct lastlog)
p(struct lconv)
p(struct linger)
-p(struct loop_info)
-p(struct loop_info64)
+p(struct link_map)
p(struct mld_hdr)
p(struct mntent)
p(struct mq_attr)
+p(struct msgbuf)
p(struct msghdr)
p(struct msginfo)
p(struct msqid_ds)
+p(struct mt_tape_info)
+p(struct mtconfiginfo)
+p(struct mtget)
+p(struct mtop)
+p(struct mtpos)
p(struct nd_neighbor_advert)
p(struct nd_neighbor_solicit)
p(struct nd_opt_adv_interval)
p(struct pollfd)
p(struct protoent)
p(struct qelem)
+p(struct r_debug)
p(struct res_sym)
p(struct rlimit)
p(struct rr_pco_match)
p(struct semid_ds)
p(struct seminfo)
p(struct servent)
+p(struct sg_header)
+p(struct sg_io_hdr)
+p(struct sg_iovec)
+p(struct sg_req_info)
+p(struct sg_scsi_id)
p(struct shm_info)
p(struct shmid_ds)
p(struct shminfo)
p(struct tms)
p(struct ucred)
p(struct udphdr)
-p(struct unimapdesc)
-p(struct unimapinit)
-p(struct unipair)
p(struct user)
p(struct user_fpregs_struct)
p(struct user_fpxregs_struct)
p(struct utimbuf)
p(struct utmpx)
p(struct utsname)
-p(struct vt_consize)
-p(struct vt_mode)
-p(struct vt_sizes)
-p(struct vt_stat)
p(struct winsize)
p(suseconds_t)
p(tcflag_t)
p(uintmax_t)
p(uintptr_t)
p(ulong)
+//p(union __double_repr)
+//p(union __float_repr)
p(union epoll_data)
p(union sigval)
p(ushort)
echo '#define _FILE_OFFSET_BITS 64' >>sizeof.c
echo '#define SYSLOG_NAMES 1' >>sizeof.c
echo '#include <stddef.h>' >>sizeof.c
+echo '#include <stdio.h>' >>sizeof.c
echo '#include <sys/types.h>' >>sizeof.c
echo '' >>sizeof.c
sort /tmp/m.header |uniq |awk '
- /^features\.h$/ { printf "//" }
+ /^(sys\/cachectl|stdalign|stdnoreturn)\.h$/ { printf "//" }
{ print "#include <" $0 ">" }' >>sizeof.c
echo '#define p(x) printf("%s\\t%u\\n", #x, sizeof(x));' >>sizeof.c
echo 'int main(){' >>sizeof.c
sort /tmp/m.type |uniq |awk '
- /^struct __(CODE|fpstate|ptcb|siginfo|ucontext)$/ ||
- /^(DIR|FILE|elf_fpxregset_t)$/ { printf "//" }
+ /^(struct|union) __(CODE|ptcb|siginfo|ucontext|sigjmp_buf|double_repr|float_repr)$/ ||
+ /^(DIR|FILE|Sg_io_vec)$/ { printf "//" }
{ print "p(" $0 ")" }' >>sizeof.c
echo 'return 0;}' >>sizeof.c