c++ abi check tools
authornsz <nsz@port70.net>
Wed, 10 Sep 2014 23:19:44 +0000 (01:19 +0200)
committernsz <nsz@port70.net>
Wed, 10 Sep 2014 23:19:44 +0000 (01:19 +0200)
Makefile
abi.cc [new file with mode: 0644]
abi.sh [new file with mode: 0755]
data/abi.i386.diff [new file with mode: 0644]
data/abi.i386.glibc [new file with mode: 0644]
data/abi.i386.musl [new file with mode: 0644]

index a59a01e..228337a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 MUSL=../musl
 
-all: tables sizeof
+all: tables sizeof abi
 
 clean:
        rm -f sizeof*.o sizeof-glibc sizeof-musl sizeof.diff tab_*.html
@@ -32,3 +32,17 @@ sizeof-musl: sizeof.c
 sizeof-g++: sizeof.c
        g++ -std=gnu99 -nostdinc -fno-stack-protector -isystem $(MUSL)/include -isystem $(LIBGCC) -isystem /usr/include -c -o $@.o $<
        ld -o $@ $@.o -X -d -e _start -Bstatic $(MUSL)/lib/crti.o $(MUSL)/lib/crt1.o $(MUSL)/lib/crtn.o -L$(MUSL)/lib -lc -L$(LIBGCC) -lgcc -nostdlib
+
+abi: abi.ARCH.diff
+       cp abi.ARCH.* data/
+
+abi.cc:
+       ./abi.sh
+abi.ARCH.glibc: abi.cc
+       g++ -c -o $@.o $<
+       nm $@.o |sed -n 's/^[[:xdigit:]]* T //p' |c++filt >$@
+abi.ARCH.musl: abi.cc
+       g++ -nostdinc -fno-stack-protector -isystem $(MUSL)/include -isystem $(LIBGCC) -isystem /usr/include -c -o $@.o $<
+       nm $@.o |sed -n 's/^[[:xdigit:]]* T //p' |c++filt >$@
+abi.ARCH.diff:  abi.ARCH.glibc abi.ARCH.musl
+       diff -U0 $^ >$@ || true
diff --git a/abi.cc b/abi.cc
new file mode 100644 (file)
index 0000000..04236bd
--- /dev/null
+++ b/abi.cc
@@ -0,0 +1,648 @@
+#define _GNU_SOURCE 1
+#define _LARGEFILE64_SOURCE 1
+#define _FILE_OFFSET_BITS 64
+#define SYSLOG_NAMES 1
+#include <stddef.h>
+#include <sys/types.h>
+
+#include <aio.h>
+#include <alloca.h>
+#include <ar.h>
+#include <arpa/ftp.h>
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
+#include <arpa/nameser_compat.h>
+#include <arpa/telnet.h>
+#include <arpa/tftp.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 <elf.h>
+#include <endian.h>
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <features.h>
+#include <fenv.h>
+#include <float.h>
+#include <fmtmsg.h>
+#include <fnmatch.h>
+#include <ftw.h>
+#include <getopt.h>
+#include <glob.h>
+#include <grp.h>
+#include <iconv.h>
+#include <ifaddrs.h>
+#include <inttypes.h>
+#include <iso646.h>
+#include <langinfo.h>
+#include <lastlog.h>
+#include <libgen.h>
+#include <libintl.h>
+#include <limits.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 <net/if_arp.h>
+#include <net/route.h>
+#include <netdb.h>
+#include <netinet/ether.h>
+#include <netinet/icmp6.h>
+#include <netinet/if_ether.h>
+#include <netinet/igmp.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <netinet/ip6.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/tcp.h>
+#include <netinet/udp.h>
+#include <netpacket/packet.h>
+#include <nl_types.h>
+#include <paths.h>
+#include <poll.h>
+#include <pthread.h>
+#include <pty.h>
+#include <pwd.h>
+#include <regex.h>
+#include <resolv.h>
+#include <sched.h>
+#include <scsi/scsi.h>
+#include <scsi/scsi_ioctl.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 <stdint.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/auxv.h>
+//#include <sys/cachectl.h>
+#include <sys/dir.h>
+#include <sys/epoll.h>
+//#include <sys/errno.h>
+#include <sys/eventfd.h>
+#include <sys/fanotify.h>
+//#include <sys/fcntl.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/klog.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/ptrace.h>
+#include <sys/quota.h>
+#include <sys/reboot.h>
+#include <sys/reg.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/sem.h>
+#include <sys/sendfile.h>
+#include <sys/shm.h>
+//#include <sys/signal.h>
+#include <sys/signalfd.h>
+#include <sys/socket.h>
+//#include <sys/soundcard.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/statvfs.h>
+#include <sys/stropts.h>
+#include <sys/swap.h>
+#include <sys/syscall.h>
+#include <sys/sysinfo.h>
+#include <sys/syslog.h>
+#include <sys/sysmacros.h>
+//#include <sys/termios.h>
+#include <sys/time.h>
+#include <sys/timeb.h>
+#include <sys/timerfd.h>
+#include <sys/times.h>
+#include <sys/timex.h>
+#include <sys/ttydefaults.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+#include <sys/user.h>
+#include <sys/utsname.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 <threads.h>
+#include <time.h>
+#include <ucontext.h>
+#include <ulimit.h>
+#include <unistd.h>
+#include <utime.h>
+#include <utmp.h>
+#include <utmpx.h>
+#include <values.h>
+//#include <wait.h>
+#include <wchar.h>
+#include <wctype.h>
+#include <wordexp.h>
+typedef long long long_long; typedef long double long_double;
+struct size{int i;}; struct align{int i;};
+#define p(s,t) void x_##t(s t x, size(*y)[sizeof(s t)], align(*z)[__alignof__(s t)]){}
+#define pp(s,t) void y_##t(s t* x, size(*y)[sizeof(s t*)], align(*z)[__alignof__(s t*)]){}
+p(,ACTION)
+p(,CODE)
+pp(,DIR)
+p(,Dl_info)
+p(,ENTRY)
+p(,Elf32_Addr)
+p(,Elf32_Conflict)
+p(,Elf32_Dyn)
+p(,Elf32_Ehdr)
+p(,Elf32_Half)
+p(,Elf32_Lib)
+p(,Elf32_Move)
+p(,Elf32_Nhdr)
+p(,Elf32_Off)
+p(,Elf32_Phdr)
+p(,Elf32_RegInfo)
+p(,Elf32_Rel)
+p(,Elf32_Rela)
+p(,Elf32_Section)
+p(,Elf32_Shdr)
+p(,Elf32_Sword)
+p(,Elf32_Sxword)
+p(,Elf32_Sym)
+p(,Elf32_Syminfo)
+p(,Elf32_Verdaux)
+p(,Elf32_Verdef)
+p(,Elf32_Vernaux)
+p(,Elf32_Verneed)
+p(,Elf32_Versym)
+p(,Elf32_Word)
+p(,Elf32_Xword)
+p(,Elf32_auxv_t)
+p(,Elf32_gptab)
+p(,Elf64_Addr)
+p(,Elf64_Dyn)
+p(,Elf64_Ehdr)
+p(,Elf64_Half)
+p(,Elf64_Lib)
+p(,Elf64_Move)
+p(,Elf64_Nhdr)
+p(,Elf64_Off)
+p(,Elf64_Phdr)
+p(,Elf64_Rel)
+p(,Elf64_Rela)
+p(,Elf64_Section)
+p(,Elf64_Shdr)
+p(,Elf64_Sword)
+p(,Elf64_Sxword)
+p(,Elf64_Sym)
+p(,Elf64_Syminfo)
+p(,Elf64_Verdaux)
+p(,Elf64_Verdef)
+p(,Elf64_Vernaux)
+p(,Elf64_Verneed)
+p(,Elf64_Versym)
+p(,Elf64_Word)
+p(,Elf64_Xword)
+p(,Elf64_auxv_t)
+p(,Elf_Options)
+p(,Elf_Options_Hw)
+p(,Elf_Symndx)
+pp(,FILE)
+p(,HEADER)
+p(,Sg_io_hdr)
+//p(,Sg_io_vec)
+p(,Sg_req_info)
+p(,Sg_scsi_id)
+p(,VISIT)
+//p(,__isoc_va_list)
+p(,__jmp_buf)
+p(,blkcnt_t)
+p(,blksize_t)
+p(,bool)
+p(,caddr_t)
+p(,cc_t)
+p(,char)
+p(,clock_t)
+p(,clockid_t)
+p(,comp_t)
+p(,cpu_set_t)
+p(,dev_t)
+p(,div_t)
+p(,double)
+p(,double_t)
+p(,elf_fpregset_t)
+//p(,elf_fpxregset_t)
+p(,elf_greg_t)
+p(,elf_gregset_t)
+p(,epoll_data_t)
+p(,eventfd_t)
+p(,fd_mask)
+p(,fd_set)
+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(,imaxdiv_t)
+p(,in_addr_t)
+p(,in_port_t)
+p(,ino_t)
+p(,int)
+p(,int16_t)
+p(,int32_t)
+p(,int64_t)
+p(,int8_t)
+p(,int_fast16_t)
+p(,int_fast32_t)
+p(,int_fast64_t)
+p(,int_fast8_t)
+p(,int_least16_t)
+p(,int_least32_t)
+p(,int_least64_t)
+p(,int_least8_t)
+p(,intmax_t)
+p(,intptr_t)
+p(,jmp_buf)
+p(,key_t)
+p(,ldiv_t)
+p(,lldiv_t)
+p(,locale_t)
+p(,long)
+p(,long_double)
+p(,long_long)
+p(,lwpid_t)
+p(,mbstate_t)
+p(,mcontext_t)
+p(,mode_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(,nlink_t)
+p(,ns_cert_types)
+p(,ns_class)
+p(,ns_flag)
+p(,ns_key_types)
+p(,ns_msg)
+p(,ns_opcode)
+p(,ns_rcode)
+p(,ns_rr)
+p(,ns_sect)
+//p(,ns_tcp_tsig_state)
+//p(,ns_tsig_key)
+p(,ns_type)
+p(,ns_update_operation)
+p(,off_t)
+p(,pid_t)
+p(,posix_spawn_file_actions_t)
+p(,posix_spawnattr_t)
+p(,prfpregset_t)
+p(,prgregset_t)
+p(,prpsinfo_t)
+p(,prstatus_t)
+p(,psaddr_t)
+p(,pthread_attr_t)
+p(,pthread_barrier_t)
+p(,pthread_barrierattr_t)
+p(,pthread_cond_t)
+p(,pthread_condattr_t)
+p(,pthread_key_t)
+p(,pthread_mutex_t)
+p(,pthread_mutexattr_t)
+p(,pthread_once_t)
+p(,pthread_rwlock_t)
+p(,pthread_rwlockattr_t)
+p(,pthread_spinlock_t)
+p(,pthread_t)
+p(,ptrdiff_t)
+p(,quad_t)
+p(,regex_t)
+p(,register_t)
+p(,regmatch_t)
+p(,regoff_t)
+p(,res_state)
+p(,rlim_t)
+p(,sa_family_t)
+p(,sem_t)
+p(,sg_io_hdr_t)
+p(,sg_iovec_t)
+p(,sg_req_info_t)
+p(,shmatt_t)
+p(,short)
+p(,sig_atomic_t)
+p(,sig_t)
+p(,sighandler_t)
+p(,siginfo_t)
+p(,sigjmp_buf)
+p(,sigset_t)
+p(,size_t)
+p(,socklen_t)
+p(,speed_t)
+p(,ssize_t)
+p(,stack_t)
+p(struct,FTW)
+//p(struct,__CODE)
+//p(struct,__fsid_t)
+p(struct,__jmp_buf_tag)
+//p(struct,__mbstate_t)
+p(struct,__ns_msg)
+p(struct,__ns_rr)
+//p(struct,__ptcb)
+p(struct,__res_state)
+//p(struct,__sigset_t)
+//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,cpu_set_t)
+p(struct,crypt_data)
+p(struct,dirent)
+p(struct,dl_phdr_info)
+p(struct,dqblk)
+p(struct,dqinfo)
+p(struct,elf_prpsinfo)
+p(struct,elf_prstatus)
+p(struct,elf_siginfo)
+p(struct,entry)
+p(struct,epoll_event)
+p(struct,ether_addr)
+p(struct,ether_arp)
+p(struct,ether_header)
+p(struct,ethhdr)
+p(struct,f_owner_ex)
+p(struct,fanotify_event_metadata)
+p(struct,fanotify_response)
+p(struct,flock)
+p(struct,group)
+p(struct,group_filter)
+p(struct,group_req)
+p(struct,group_source_req)
+p(struct,hostent)
+p(struct,icmp)
+p(struct,icmp6_filter)
+p(struct,icmp6_hdr)
+p(struct,icmp6_router_renum)
+p(struct,icmp_ra_addr)
+p(struct,icmphdr)
+p(struct,if_nameindex)
+p(struct,ifaddr)
+p(struct,ifaddrs)
+p(struct,ifconf)
+p(struct,ifmap)
+p(struct,ifreq)
+p(struct,igmp)
+//p(struct,ih_idseq)
+//p(struct,ih_pmtu)
+//p(struct,ih_rtradv)
+p(struct,in6_addr)
+p(struct,in6_pktinfo)
+p(struct,in6_rtmsg)
+p(struct,in_addr)
+p(struct,in_pktinfo)
+p(struct,inotify_event)
+p(struct,iovec)
+p(struct,ip)
+p(struct,ip6_dest)
+p(struct,ip6_ext)
+p(struct,ip6_frag)
+p(struct,ip6_hbh)
+p(struct,ip6_hdr)
+//p(struct,ip6_hdrctl)
+p(struct,ip6_mtuinfo)
+p(struct,ip6_opt)
+p(struct,ip6_opt_jumbo)
+p(struct,ip6_opt_nsap)
+p(struct,ip6_opt_router)
+p(struct,ip6_opt_tunnel)
+p(struct,ip6_rthdr)
+p(struct,ip6_rthdr0)
+p(struct,ip_mreq)
+p(struct,ip_mreq_source)
+p(struct,ip_mreqn)
+p(struct,ip_msfilter)
+p(struct,ip_opts)
+p(struct,ip_timestamp)
+p(struct,ipc_perm)
+p(struct,iphdr)
+p(struct,ipv6_mreq)
+p(struct,itimerspec)
+p(struct,itimerval)
+p(struct,lastlog)
+p(struct,lconv)
+p(struct,linger)
+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,nd_opt_hdr)
+p(struct,nd_opt_home_agent_info)
+p(struct,nd_opt_mtu)
+p(struct,nd_opt_prefix_info)
+p(struct,nd_opt_rd_hdr)
+p(struct,nd_redirect)
+p(struct,nd_router_advert)
+p(struct,nd_router_solicit)
+p(struct,netent)
+p(struct,ns_tcp_tsig_state)
+p(struct,ns_tsig_key)
+p(struct,ntptimeval)
+p(struct,option)
+p(struct,packet_mreq)
+p(struct,passwd)
+p(struct,pollfd)
+p(struct,protoent)
+//p(struct,ptrace_peeksiginfo_args)
+p(struct,qelem)
+p(struct,r_debug)
+p(struct,re_pattern_buffer)
+p(struct,res_sym)
+p(struct,rlimit)
+p(struct,rr_pco_match)
+p(struct,rr_pco_use)
+p(struct,rr_result)
+p(struct,rtentry)
+p(struct,rusage)
+p(struct,sched_param)
+p(struct,sembuf)
+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,sigaction)
+p(struct,sigaltstack)
+p(struct,sigcontext)
+p(struct,sigevent)
+p(struct,signalfd_siginfo)
+p(struct,sockaddr)
+p(struct,sockaddr_in)
+p(struct,sockaddr_in6)
+p(struct,sockaddr_ll)
+p(struct,sockaddr_storage)
+p(struct,sockaddr_un)
+p(struct,spwd)
+p(struct,stat)
+p(struct,statfs)
+p(struct,statvfs)
+p(struct,str_list)
+p(struct,str_mlist)
+p(struct,strbuf)
+p(struct,strfdinsert)
+p(struct,strioctl)
+p(struct,strpeek)
+p(struct,strrecvfd)
+p(struct,sysinfo)
+p(struct,tcp_info)
+p(struct,tcp_md5sig)
+p(struct,tcphdr)
+p(struct,termios)
+p(struct,tftphdr)
+p(struct,timeb)
+p(struct,timespec)
+p(struct,timestamp)
+p(struct,timeval)
+p(struct,timex)
+p(struct,timezone)
+p(struct,tm)
+p(struct,tms)
+p(struct,ucred)
+p(struct,udphdr)
+p(struct,user)
+p(struct,user_fpregs_struct)
+//p(struct,user_fpxregs_struct)
+p(struct,user_regs_struct)
+p(struct,utimbuf)
+p(struct,utmpx)
+p(struct,utsname)
+p(struct,winsize)
+p(,suseconds_t)
+p(,tcflag_t)
+//p(,tcp_seq)
+p(,time_t)
+p(,timer_t)
+p(,u_char)
+p(,u_int)
+p(,u_int16_t)
+p(,u_int32_t)
+p(,u_int64_t)
+p(,u_int8_t)
+p(,u_long)
+p(,u_quad_t)
+p(,u_short)
+p(,ucontext_t)
+p(,uid_t)
+p(,uint)
+p(,uint16_t)
+p(,uint32_t)
+p(,uint64_t)
+p(,uint8_t)
+p(,uint_fast16_t)
+p(,uint_fast32_t)
+p(,uint_fast64_t)
+p(,uint_fast8_t)
+p(,uint_least16_t)
+p(,uint_least32_t)
+p(,uint_least64_t)
+p(,uint_least8_t)
+p(,uintmax_t)
+p(,uintptr_t)
+p(,ulong)
+//p(union,_G_fpos64_t)
+p(union,epoll_data)
+p(union,sigval)
+p(,useconds_t)
+p(,ushort)
+p(,va_list)
+pp(,void)
+p(,wchar_t)
+p(,wctrans_t)
+p(,wctype_t)
+p(,wint_t)
+p(,wordexp_t)
diff --git a/abi.sh b/abi.sh
new file mode 100755 (executable)
index 0000000..2c2594d
--- /dev/null
+++ b/abi.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+export LC_ALL=C
+MUSL=${MUSL:-../musl}
+
+awk -F'\t' '$3 ~ /^[sut]$/ {
+       print $1
+}' data/musl.tags >/tmp/m.type
+echo 'char' >>/tmp/m.type
+echo 'short' >>/tmp/m.type
+echo 'int' >>/tmp/m.type
+echo 'long' >>/tmp/m.type
+echo 'long_long' >>/tmp/m.type
+echo 'float' >>/tmp/m.type
+echo 'double' >>/tmp/m.type
+echo 'long_double' >>/tmp/m.type
+echo 'wchar_t' >>/tmp/m.type
+echo 'bool' >>/tmp/m.type
+echo 'void' >>/tmp/m.type
+
+(
+       cd $MUSL/include
+       find . -name '*.h' | sed 's,^\./,,' >/tmp/m.header
+)
+
+echo '#define _GNU_SOURCE 1' >abi.cc
+echo '#define _LARGEFILE64_SOURCE 1' >>abi.cc
+echo '#define _FILE_OFFSET_BITS 64' >>abi.cc
+echo '#define SYSLOG_NAMES 1' >>abi.cc
+echo '#include <stddef.h>' >>abi.cc
+echo '#include <sys/types.h>' >>abi.cc
+echo '' >>abi.cc
+
+sort /tmp/m.header |uniq |awk '
+       /^sys\/(auxv|cachectl|fantotify|errno|fcntl|poll|signal|soundcard|termios)\.h$/ { printf "//" }
+       /^(stdalign|stdnoreturn|threads|wait)\.h$/ { printf "//" }
+       { print "#include <" $0 ">" }' >>abi.cc
+echo 'typedef long long long_long; typedef long double long_double;' >>abi.cc
+echo 'struct size{int i;}; struct align{int i;};' >>abi.cc
+echo '#define p(s,t) void x_##t(s t x, size(*y)[sizeof(s t)], align(*z)[__alignof__(s t)]){}' >>abi.cc
+echo '#define pp(s,t) void y_##t(s t* x, size(*y)[sizeof(s t*)], align(*z)[__alignof__(s t*)]){}' >>abi.cc
+sort /tmp/m.type |uniq |awk '
+       /^(struct|union) __(CODE|ptcb|siginfo|ucontext|sigjmp_buf|double_repr|float_repr|sigset_t|mbstate_t|fsid_t)$/ ||
+       /^(elf_fpxregset_t|struct user_fpxregs_struct|Sg_io_vec|struct ih_.*|struct ip6_hdrctl|tcp_seq|union _G_fpos64_t|struct cpu_set_t|__isoc_va_list|ns_tcp_tsig.*|ns_tsig_.*|struct ptrace_peeksiginfo_.*)$/ { printf "//" }
+       { if (!sub(/ /,",")) sub(/^/,",") }
+       /,(DIR|FILE|void)$/ { print "pp(" $0 ")"; next }
+       { print "p(" $0 ")" }' >>abi.cc
diff --git a/data/abi.i386.diff b/data/abi.i386.diff
new file mode 100644 (file)
index 0000000..bc39ac3
--- /dev/null
@@ -0,0 +1,47 @@
+--- abi.ARCH.glibc     2014-09-10 23:21:59.003339043 +0200
++++ abi.ARCH.musl      2014-09-10 23:21:59.955343761 +0200
+@@ -2 +2 @@
+-x__fpstate(_fpstate, size (*) [624], align (*) [4])
++x__fpstate(_fpstate, size (*) [112], align (*) [4])
+@@ -35 +35 @@
+-x_tcp_info(tcp_info, size (*) [104], align (*) [4])
++x_tcp_info(tcp_info, size (*) [120], align (*) [4])
+@@ -55 +55 @@
+-x___jmp_buf(int*, size (*) [24], align (*) [4])
++x___jmp_buf(unsigned long*, size (*) [24], align (*) [4])
+@@ -83 +83 @@
+-x_siginfo_t(siginfo, size (*) [128], align (*) [4])
++x_siginfo_t(siginfo_t, size (*) [128], align (*) [4])
+@@ -116 +116 @@
+-x_crypt_data(crypt_data, size (*) [131228], align (*) [4])
++x_crypt_data(crypt_data, size (*) [260], align (*) [4])
+@@ -121 +121 @@
+-x_fpregset_t(_libc_fpstate*, size (*) [4], align (*) [4])
++x_fpregset_t(_fpstate*, size (*) [4], align (*) [4])
+@@ -130 +130 @@
+-x_ntptimeval(ntptimeval, size (*) [36], align (*) [4])
++x_ntptimeval(ntptimeval, size (*) [16], align (*) [4])
+@@ -163 +163 @@
+-x_sched_param(sched_param, size (*) [4], align (*) [4])
++x_sched_param(sched_param, size (*) [28], align (*) [4])
+@@ -186 +186 @@
+-x_ether_header(ether_header, size (*) [14], align (*) [1])
++x_ether_header(ether_header, size (*) [14], align (*) [2])
+@@ -279 +279 @@
+-x_CODE(_code, size (*) [8], align (*) [4])
++x_CODE(CODE, size (*) [8], align (*) [4])
+@@ -339 +339 @@
+-x_ethhdr(ethhdr, size (*) [14], align (*) [1])
++x_ethhdr(ethhdr, size (*) [14], align (*) [2])
+@@ -366 +366 @@
+-x_rusage(rusage, size (*) [72], align (*) [4])
++x_rusage(rusage, size (*) [136], align (*) [4])
+@@ -385 +385 @@
+-x_fd_mask(long, size (*) [4], align (*) [4])
++x_fd_mask(unsigned long, size (*) [4], align (*) [4])
+@@ -427 +427 @@
+-x_sysinfo(sysinfo, size (*) [64], align (*) [4])
++x_sysinfo(sysinfo, size (*) [312], align (*) [4])
+@@ -429 +429 @@
+-x_tftphdr(tftphdr, size (*) [5], align (*) [1])
++x_tftphdr(tftphdr, size (*) [6], align (*) [2])
diff --git a/data/abi.i386.glibc b/data/abi.i386.glibc
new file mode 100644 (file)
index 0000000..f2298bb
--- /dev/null
@@ -0,0 +1,438 @@
+x___ns_msg(__ns_msg, size (*) [48], align (*) [4])
+x__fpstate(_fpstate, size (*) [624], align (*) [4])
+x_addrinfo(addrinfo, size (*) [32], align (*) [4])
+x_bandinfo(bandinfo, size (*) [8], align (*) [4])
+x_blkcnt_t(long long, size (*) [8], align (*) [8])
+x_double_t(long double, size (*) [12], align (*) [4])
+x_idtype_t(idtype_t, size (*) [4], align (*) [4])
+x_in6_addr(in6_addr, size (*) [16], align (*) [4])
+x_intmax_t(long long, size (*) [8], align (*) [8])
+x_intptr_t(int, size (*) [4], align (*) [4])
+x_ip6_dest(ip6_dest, size (*) [2], align (*) [1])
+x_ip6_frag(ip6_frag, size (*) [8], align (*) [4])
+x_ip_mreqn(ip_mreqn, size (*) [12], align (*) [4])
+x_ipc_perm(ipc_perm, size (*) [36], align (*) [4])
+x_link_map(link_map, size (*) [20], align (*) [4])
+x_locale_t(__locale_struct*, size (*) [4], align (*) [4])
+x_msglen_t(unsigned long, size (*) [4], align (*) [4])
+x_msqid_ds(msqid_ds, size (*) [88], align (*) [4])
+x_ns_class(__ns_class, size (*) [4], align (*) [4])
+x_ns_rcode(__ns_rcode, size (*) [4], align (*) [4])
+x_protoent(protoent, size (*) [12], align (*) [4])
+x_psaddr_t(void*, size (*) [4], align (*) [4])
+x_regoff_t(int, size (*) [4], align (*) [4])
+x_semid_ds(semid_ds, size (*) [64], align (*) [4])
+x_sg_iovec(sg_iovec, size (*) [8], align (*) [4])
+x_shm_info(shm_info, size (*) [24], align (*) [4])
+x_shmatt_t(unsigned long, size (*) [4], align (*) [4])
+x_shmid_ds(shmid_ds, size (*) [84], align (*) [4])
+x_sigevent(sigevent, size (*) [64], align (*) [4])
+x_sigset_t(__sigset_t, size (*) [128], align (*) [4])
+x_sockaddr(sockaddr, size (*) [16], align (*) [2])
+x_str_list(str_list, size (*) [8], align (*) [4])
+x_strioctl(strioctl, size (*) [16], align (*) [4])
+x_tcflag_t(unsigned int, size (*) [4], align (*) [4])
+x_tcp_info(tcp_info, size (*) [104], align (*) [4])
+x_timespec(timespec, size (*) [8], align (*) [4])
+x_timezone(timezone, size (*) [8], align (*) [4])
+x_u_int8_t(unsigned char, size (*) [1], align (*) [1])
+x_u_quad_t(unsigned long long, size (*) [8], align (*) [8])
+x_uint16_t(unsigned short, size (*) [2], align (*) [2])
+x_uint32_t(unsigned int, size (*) [4], align (*) [4])
+x_uint64_t(unsigned long long, size (*) [8], align (*) [8])
+x_wctype_t(unsigned long, size (*) [4], align (*) [4])
+x_Elf32_Dyn(Elf32_Dyn, size (*) [8], align (*) [4])
+x_Elf32_Lib(Elf32_Lib, size (*) [20], align (*) [4])
+x_Elf32_Off(unsigned int, size (*) [4], align (*) [4])
+x_Elf32_Rel(Elf32_Rel, size (*) [8], align (*) [4])
+x_Elf32_Sym(Elf32_Sym, size (*) [16], align (*) [4])
+x_Elf64_Dyn(Elf64_Dyn, size (*) [16], align (*) [4])
+x_Elf64_Lib(Elf64_Lib, size (*) [20], align (*) [4])
+x_Elf64_Off(unsigned long long, size (*) [8], align (*) [8])
+x_Elf64_Rel(Elf64_Rel, size (*) [16], align (*) [4])
+x_Elf64_Sym(Elf64_Sym, size (*) [24], align (*) [4])
+x_Sg_io_hdr(sg_io_hdr, size (*) [64], align (*) [4])
+x___jmp_buf(int*, size (*) [24], align (*) [4])
+x_blksize_t(long, size (*) [4], align (*) [4])
+x_clockid_t(int, size (*) [4], align (*) [4])
+x_cpu_set_t(cpu_set_t, size (*) [128], align (*) [4])
+x_ether_arp(ether_arp, size (*) [28], align (*) [2])
+x_eventfd_t(unsigned long long, size (*) [8], align (*) [8])
+x_fexcept_t(unsigned short, size (*) [2], align (*) [2])
+x_gregset_t(int*, size (*) [76], align (*) [4])
+x_group_req(group_req, size (*) [132], align (*) [4])
+x_icmp6_hdr(icmp6_hdr, size (*) [8], align (*) [4])
+x_imaxdiv_t(imaxdiv_t, size (*) [16], align (*) [4])
+x_in6_rtmsg(in6_rtmsg, size (*) [72], align (*) [4])
+x_in_addr_t(unsigned int, size (*) [4], align (*) [4])
+x_in_port_t(unsigned short, size (*) [2], align (*) [2])
+x_ip6_rthdr(ip6_rthdr, size (*) [4], align (*) [1])
+x_ipv6_mreq(ipv6_mreq, size (*) [20], align (*) [4])
+x_itimerval(itimerval, size (*) [16], align (*) [4])
+x_long_long(long long, size (*) [8], align (*) [8])
+x_mbstate_t(__mbstate_t, size (*) [8], align (*) [4])
+x_msgqnum_t(unsigned long, size (*) [4], align (*) [4])
+x_ns_opcode(__ns_opcode, size (*) [4], align (*) [4])
+x_pthread_t(unsigned long, size (*) [4], align (*) [4])
+x_ptrdiff_t(int, size (*) [4], align (*) [4])
+x_res_state(__res_state*, size (*) [4], align (*) [4])
+x_rr_result(rr_result, size (*) [24], align (*) [4])
+x_sg_header(sg_header, size (*) [36], align (*) [4])
+x_sg_io_hdr(sg_io_hdr, size (*) [64], align (*) [4])
+x_sigaction(sigaction, size (*) [140], align (*) [4])
+x_siginfo_t(siginfo, size (*) [128], align (*) [4])
+x_socklen_t(unsigned int, size (*) [4], align (*) [4])
+x_str_mlist(str_mlist, size (*) [9], align (*) [1])
+x_strrecvfd(strrecvfd, size (*) [20], align (*) [4])
+x_timestamp(timestamp, size (*) [40], align (*) [4])
+x_u_int16_t(unsigned short, size (*) [2], align (*) [2])
+x_u_int32_t(unsigned int, size (*) [4], align (*) [4])
+x_u_int64_t(unsigned long long, size (*) [8], align (*) [8])
+x_uintmax_t(unsigned long long, size (*) [8], align (*) [8])
+x_uintptr_t(unsigned int, size (*) [4], align (*) [4])
+x_wctrans_t(int const*, size (*) [4], align (*) [4])
+x_wordexp_t(wordexp_t, size (*) [12], align (*) [4])
+x_Elf32_Addr(unsigned int, size (*) [4], align (*) [4])
+x_Elf32_Ehdr(Elf32_Ehdr, size (*) [52], align (*) [4])
+x_Elf32_Half(unsigned short, size (*) [2], align (*) [2])
+x_Elf32_Move(Elf32_Move, size (*) [20], align (*) [4])
+x_Elf32_Nhdr(Elf32_Nhdr, size (*) [12], align (*) [4])
+x_Elf32_Phdr(Elf32_Phdr, size (*) [32], align (*) [4])
+x_Elf32_Rela(Elf32_Rela, size (*) [12], align (*) [4])
+x_Elf32_Shdr(Elf32_Shdr, size (*) [40], align (*) [4])
+x_Elf32_Word(unsigned int, size (*) [4], align (*) [4])
+x_Elf64_Addr(unsigned long long, size (*) [8], align (*) [8])
+x_Elf64_Ehdr(Elf64_Ehdr, size (*) [64], align (*) [4])
+x_Elf64_Half(unsigned short, size (*) [2], align (*) [2])
+x_Elf64_Move(Elf64_Move, size (*) [28], align (*) [4])
+x_Elf64_Nhdr(Elf64_Nhdr, size (*) [12], align (*) [4])
+x_Elf64_Phdr(Elf64_Phdr, size (*) [56], align (*) [4])
+x_Elf64_Rela(Elf64_Rela, size (*) [24], align (*) [4])
+x_Elf64_Shdr(Elf64_Shdr, size (*) [64], align (*) [4])
+x_Elf64_Word(unsigned int, size (*) [4], align (*) [4])
+x_Elf_Symndx(unsigned int, size (*) [4], align (*) [4])
+x_Sg_scsi_id(sg_scsi_id, size (*) [32], align (*) [4])
+x_arpreq_old(arpreq_old, size (*) [52], align (*) [4])
+x_crypt_data(crypt_data, size (*) [131228], align (*) [4])
+x_elf_greg_t(unsigned long, size (*) [4], align (*) [4])
+x_epoll_data(epoll_data, size (*) [8], align (*) [4])
+x_ether_addr(ether_addr, size (*) [6], align (*) [1])
+x_f_owner_ex(f_owner_ex, size (*) [8], align (*) [4])
+x_fpregset_t(_libc_fpstate*, size (*) [4], align (*) [4])
+x_fsblkcnt_t(unsigned long long, size (*) [8], align (*) [8])
+x_fsfilcnt_t(unsigned long long, size (*) [8], align (*) [8])
+x_in_pktinfo(in_pktinfo, size (*) [12], align (*) [4])
+x_ip6_rthdr0(ip6_rthdr0, size (*) [8], align (*) [4])
+x_itimerspec(itimerspec, size (*) [16], align (*) [4])
+x_mcontext_t(mcontext_t, size (*) [88], align (*) [4])
+x_nd_opt_hdr(nd_opt_hdr, size (*) [2], align (*) [1])
+x_nd_opt_mtu(nd_opt_mtu, size (*) [8], align (*) [4])
+x_ntptimeval(ntptimeval, size (*) [36], align (*) [4])
+x_prpsinfo_t(elf_prpsinfo, size (*) [124], align (*) [4])
+x_prstatus_t(elf_prstatus, size (*) [144], align (*) [4])
+x_register_t(int, size (*) [4], align (*) [4])
+x_regmatch_t(regmatch_t, size (*) [8], align (*) [4])
+x_rr_pco_use(rr_pco_use, size (*) [32], align (*) [4])
+x_sg_iovec_t(sg_iovec, size (*) [8], align (*) [4])
+x_sg_scsi_id(sg_scsi_id, size (*) [32], align (*) [4])
+x_sigcontext(sigcontext, size (*) [88], align (*) [4])
+x_sigjmp_buf(__jmp_buf_tag*, size (*) [156], align (*) [4])
+x_tcp_md5sig(tcp_md5sig, size (*) [216], align (*) [4])
+x_ucontext_t(ucontext, size (*) [348], align (*) [4])
+x_useconds_t(unsigned int, size (*) [4], align (*) [4])
+x_Elf32_Sword(int, size (*) [4], align (*) [4])
+x_Elf32_Xword(unsigned long long, size (*) [8], align (*) [8])
+x_Elf32_gptab(Elf32_gptab, size (*) [8], align (*) [4])
+x_Elf64_Sword(int, size (*) [4], align (*) [4])
+x_Elf64_Xword(unsigned long long, size (*) [8], align (*) [8])
+x_Elf_Options(Elf_Options, size (*) [8], align (*) [4])
+x_Sg_req_info(sg_req_info, size (*) [20], align (*) [4])
+x___res_state(__res_state, size (*) [512], align (*) [4])
+x_elf_siginfo(elf_siginfo, size (*) [12], align (*) [4])
+x_epoll_event(epoll_event, size (*) [12], align (*) [4])
+x_in6_pktinfo(in6_pktinfo, size (*) [20], align (*) [4])
+x_int_fast8_t(signed char, size (*) [1], align (*) [1])
+x_ip6_mtuinfo(ip6_mtuinfo, size (*) [32], align (*) [4])
+x_ip_msfilter(ip_msfilter, size (*) [20], align (*) [4])
+x_long_double(long double, size (*) [12], align (*) [4])
+x_nd_redirect(nd_redirect, size (*) [40], align (*) [4])
+x_ns_tsig_key(ns_tsig_key, size (*) [2060], align (*) [4])
+x_packet_mreq(packet_mreq, size (*) [16], align (*) [4])
+x_prgregset_t(unsigned long*, size (*) [68], align (*) [4])
+x_sa_family_t(unsigned short, size (*) [2], align (*) [2])
+x_sched_param(sched_param, size (*) [4], align (*) [4])
+x_sg_io_hdr_t(sg_io_hdr, size (*) [64], align (*) [4])
+x_sg_req_info(sg_req_info, size (*) [20], align (*) [4])
+x_sigaltstack(sigaltstack, size (*) [12], align (*) [4])
+x_sockaddr_in(sockaddr_in, size (*) [16], align (*) [4])
+x_sockaddr_ll(sockaddr_ll, size (*) [20], align (*) [4])
+x_sockaddr_un(sockaddr_un, size (*) [110], align (*) [2])
+x_strfdinsert(strfdinsert, size (*) [36], align (*) [4])
+x_suseconds_t(long, size (*) [4], align (*) [4])
+x_Elf32_Sxword(long long, size (*) [8], align (*) [8])
+x_Elf32_Verdef(Elf32_Verdef, size (*) [20], align (*) [4])
+x_Elf32_Versym(unsigned short, size (*) [2], align (*) [2])
+x_Elf32_auxv_t(Elf32_auxv_t, size (*) [8], align (*) [4])
+x_Elf64_Sxword(long long, size (*) [8], align (*) [8])
+x_Elf64_Verdef(Elf64_Verdef, size (*) [20], align (*) [4])
+x_Elf64_Versym(unsigned short, size (*) [2], align (*) [2])
+x_Elf64_auxv_t(Elf64_auxv_t, size (*) [16], align (*) [4])
+x__ns_flagdata(_ns_flagdata, size (*) [8], align (*) [4])
+x_arpd_request(arpd_request, size (*) [28], align (*) [4])
+x_dl_phdr_info(dl_phdr_info, size (*) [40], align (*) [4])
+x_elf_prpsinfo(elf_prpsinfo, size (*) [124], align (*) [4])
+x_elf_prstatus(elf_prstatus, size (*) [144], align (*) [4])
+x_epoll_data_t(epoll_data, size (*) [8], align (*) [4])
+x_ether_header(ether_header, size (*) [14], align (*) [1])
+x_group_filter(group_filter, size (*) [268], align (*) [4])
+x_icmp6_filter(icmp6_filter, size (*) [32], align (*) [4])
+x_icmp_ra_addr(icmp_ra_addr, size (*) [8], align (*) [4])
+x_if_nameindex(if_nameindex, size (*) [8], align (*) [4])
+x_int_fast16_t(int, size (*) [4], align (*) [4])
+x_int_fast32_t(int, size (*) [4], align (*) [4])
+x_int_fast64_t(long long, size (*) [8], align (*) [8])
+x_int_least8_t(signed char, size (*) [1], align (*) [1])
+x_ip6_opt_nsap(ip6_opt_nsap, size (*) [4], align (*) [1])
+x_ip_timestamp(ip_timestamp, size (*) [40], align (*) [4])
+x_mt_tape_info(mt_tape_info, size (*) [8], align (*) [4])
+x_mtconfiginfo(mtconfiginfo, size (*) [32], align (*) [4])
+x_ns_key_types(__ns_key_types, size (*) [4], align (*) [4])
+x_prfpregset_t(user_fpregs_struct, size (*) [108], align (*) [4])
+x_rr_pco_match(rr_pco_match, size (*) [24], align (*) [4])
+x_sig_atomic_t(int, size (*) [4], align (*) [4])
+x_sighandler_t(void (*)(int), size (*) [4], align (*) [4])
+x_sockaddr_in6(sockaddr_in6, size (*) [28], align (*) [4])
+x_uint_fast8_t(unsigned char, size (*) [1], align (*) [1])
+x_Elf32_RegInfo(Elf32_RegInfo, size (*) [24], align (*) [4])
+x_Elf32_Section(unsigned short, size (*) [2], align (*) [2])
+x_Elf32_Syminfo(Elf32_Syminfo, size (*) [4], align (*) [2])
+x_Elf32_Verdaux(Elf32_Verdaux, size (*) [8], align (*) [4])
+x_Elf32_Vernaux(Elf32_Vernaux, size (*) [16], align (*) [4])
+x_Elf32_Verneed(Elf32_Verneed, size (*) [16], align (*) [4])
+x_Elf64_Section(unsigned short, size (*) [2], align (*) [2])
+x_Elf64_Syminfo(Elf64_Syminfo, size (*) [4], align (*) [2])
+x_Elf64_Verdaux(Elf64_Verdaux, size (*) [8], align (*) [4])
+x_Elf64_Vernaux(Elf64_Vernaux, size (*) [16], align (*) [4])
+x_Elf64_Verneed(Elf64_Verneed, size (*) [16], align (*) [4])
+x___jmp_buf_tag(__jmp_buf_tag, size (*) [156], align (*) [4])
+x_elf_gregset_t(unsigned long*, size (*) [68], align (*) [4])
+x_inotify_event(inotify_event, size (*) [16], align (*) [4])
+x_int_least16_t(short, size (*) [2], align (*) [2])
+x_int_least32_t(int, size (*) [4], align (*) [4])
+x_int_least64_t(long long, size (*) [8], align (*) [8])
+x_ip6_opt_jumbo(ip6_opt_jumbo, size (*) [6], align (*) [1])
+x_nd_opt_rd_hdr(nd_opt_rd_hdr, size (*) [8], align (*) [4])
+x_ns_cert_types(__ns_cert_types, size (*) [4], align (*) [4])
+x_pthread_key_t(unsigned int, size (*) [4], align (*) [4])
+x_sg_req_info_t(sg_req_info, size (*) [20], align (*) [4])
+x_uint_fast16_t(unsigned int, size (*) [4], align (*) [4])
+x_uint_fast32_t(unsigned int, size (*) [4], align (*) [4])
+x_uint_fast64_t(unsigned long long, size (*) [8], align (*) [8])
+x_uint_least8_t(unsigned char, size (*) [1], align (*) [1])
+x_Elf32_Conflict(unsigned int, size (*) [4], align (*) [4])
+x_Elf_Options_Hw(Elf_Options_Hw, size (*) [8], align (*) [4])
+x_elf_fpregset_t(user_fpregs_struct, size (*) [108], align (*) [4])
+x_ip6_opt_router(ip6_opt_router, size (*) [4], align (*) [1])
+x_ip6_opt_tunnel(ip6_opt_tunnel, size (*) [3], align (*) [1])
+x_ip_mreq_source(ip_mreq_source, size (*) [12], align (*) [4])
+x_pthread_attr_t(pthread_attr_t, size (*) [36], align (*) [4])
+x_pthread_cond_t(pthread_cond_t, size (*) [48], align (*) [4])
+x_pthread_once_t(int, size (*) [4], align (*) [4])
+x_uint_least16_t(unsigned short, size (*) [2], align (*) [2])
+x_uint_least32_t(unsigned int, size (*) [4], align (*) [4])
+x_uint_least64_t(unsigned long long, size (*) [8], align (*) [8])
+x_pthread_mutex_t(pthread_mutex_t, size (*) [24], align (*) [4])
+x_ccs_modesel_head(ccs_modesel_head, size (*) [12], align (*) [1])
+x_group_source_req(group_source_req, size (*) [260], align (*) [4])
+x_nd_router_advert(nd_router_advert, size (*) [16], align (*) [4])
+x_pthread_rwlock_t(pthread_rwlock_t, size (*) [32], align (*) [4])
+x_signalfd_siginfo(signalfd_siginfo, size (*) [128], align (*) [4])
+x_sockaddr_storage(sockaddr_storage, size (*) [128], align (*) [4])
+x_user_regs_struct(user_regs_struct, size (*) [68], align (*) [4])
+x_fanotify_response(fanotify_response, size (*) [8], align (*) [4])
+x_nd_router_solicit(nd_router_solicit, size (*) [8], align (*) [4])
+x_ns_tcp_tsig_state(ns_tcp_tsig_state, size (*) [528], align (*) [4])
+x_posix_spawnattr_t(posix_spawnattr_t, size (*) [336], align (*) [4])
+x_pthread_barrier_t(pthread_barrier_t, size (*) [20], align (*) [4])
+x_re_pattern_buffer(re_pattern_buffer, size (*) [32], align (*) [4])
+x_icmp6_router_renum(icmp6_router_renum, size (*) [16], align (*) [4])
+x_nd_neighbor_advert(nd_neighbor_advert, size (*) [24], align (*) [4])
+x_nd_opt_prefix_info(nd_opt_prefix_info, size (*) [32], align (*) [4])
+x_pthread_condattr_t(pthread_condattr_t, size (*) [4], align (*) [4])
+x_pthread_spinlock_t(int, size (*) [4], align (*) [4])
+x_user_fpregs_struct(user_fpregs_struct, size (*) [108], align (*) [4])
+x_nd_neighbor_solicit(nd_neighbor_solicit, size (*) [24], align (*) [4])
+x_nd_opt_adv_interval(nd_opt_adv_interval, size (*) [8], align (*) [4])
+x_ns_update_operation(__ns_update_operation, size (*) [4], align (*) [4])
+x_pthread_mutexattr_t(pthread_mutexattr_t, size (*) [4], align (*) [4])
+x_pthread_rwlockattr_t(pthread_rwlockattr_t, size (*) [8], align (*) [4])
+x_pthread_barrierattr_t(pthread_barrierattr_t, size (*) [4], align (*) [4])
+x_nd_opt_home_agent_info(nd_opt_home_agent_info, size (*) [8], align (*) [2])
+x_fanotify_event_metadata(fanotify_event_metadata, size (*) [24], align (*) [8])
+x_posix_spawn_file_actions_t(posix_spawn_file_actions_t, size (*) [76], align (*) [4])
+x_ip(ip, size (*) [20], align (*) [4])
+x_tm(tm, size (*) [44], align (*) [4])
+x_FTW(FTW, size (*) [8], align (*) [4])
+x_int(int, size (*) [4], align (*) [4])
+x_tms(tms, size (*) [16], align (*) [4])
+y_DIR(__dirstream*, size (*) [4], align (*) [4])
+x_CODE(_code, size (*) [8], align (*) [4])
+x_acct(acct, size (*) [64], align (*) [4])
+x_bool(bool, size (*) [1], align (*) [1])
+x_cc_t(unsigned char, size (*) [1], align (*) [1])
+x_char(char, size (*) [1], align (*) [1])
+x_icmp(icmp, size (*) [28], align (*) [4])
+x_id_t(unsigned int, size (*) [4], align (*) [4])
+x_igmp(igmp, size (*) [8], align (*) [4])
+x_long(long, size (*) [4], align (*) [4])
+x_mtop(mtop, size (*) [8], align (*) [4])
+x_spwd(spwd, size (*) [36], align (*) [4])
+x_stat(stat, size (*) [96], align (*) [4])
+x_uint(unsigned int, size (*) [4], align (*) [4])
+x_user(user, size (*) [284], align (*) [4])
+y_FILE(_IO_FILE*, size (*) [4], align (*) [4])
+y_void(void*, size (*) [4], align (*) [4])
+x_ENTRY(entry, size (*) [8], align (*) [4])
+x_VISIT(VISIT, size (*) [4], align (*) [4])
+x_aiocb(aiocb, size (*) [144], align (*) [4])
+x_dev_t(unsigned long long, size (*) [8], align (*) [8])
+x_div_t(div_t, size (*) [8], align (*) [4])
+x_dqblk(dqblk, size (*) [68], align (*) [4])
+x_entry(entry, size (*) [8], align (*) [4])
+x_float(float, size (*) [4], align (*) [4])
+x_flock(flock, size (*) [24], align (*) [4])
+x_gid_t(unsigned int, size (*) [4], align (*) [4])
+x_group(group, size (*) [16], align (*) [4])
+x_ifmap(ifmap, size (*) [16], align (*) [4])
+x_ifreq(ifreq, size (*) [32], align (*) [4])
+x_ino_t(unsigned long long, size (*) [8], align (*) [8])
+x_iovec(iovec, size (*) [8], align (*) [4])
+x_iphdr(iphdr, size (*) [20], align (*) [4])
+x_key_t(int, size (*) [4], align (*) [4])
+x_lconv(lconv, size (*) [56], align (*) [4])
+x_mqd_t(int, size (*) [4], align (*) [4])
+x_mtget(mtget, size (*) [28], align (*) [4])
+x_mtpos(mtpos, size (*) [4], align (*) [4])
+x_ns_rr(__ns_rr, size (*) [1044], align (*) [4])
+x_off_t(long long, size (*) [8], align (*) [8])
+x_pid_t(int, size (*) [4], align (*) [4])
+x_qelem(qelem, size (*) [12], align (*) [4])
+x_sem_t(sem_t, size (*) [16], align (*) [4])
+x_short(short, size (*) [2], align (*) [2])
+x_sig_t(void (*)(int), size (*) [4], align (*) [4])
+x_timeb(timeb, size (*) [12], align (*) [4])
+x_timex(timex, size (*) [128], align (*) [4])
+x_u_int(unsigned int, size (*) [4], align (*) [4])
+x_ucred(ucred, size (*) [12], align (*) [4])
+x_uid_t(unsigned int, size (*) [4], align (*) [4])
+x_ulong(unsigned long, size (*) [4], align (*) [4])
+x_utmpx(utmpx, size (*) [384], align (*) [4])
+x_ACTION(ACTION, size (*) [4], align (*) [4])
+x_HEADER(HEADER, size (*) [12], align (*) [4])
+x_ar_hdr(ar_hdr, size (*) [60], align (*) [1])
+x_arphdr(arphdr, size (*) [8], align (*) [2])
+x_arpreq(arpreq, size (*) [68], align (*) [4])
+x_comp_t(unsigned short, size (*) [2], align (*) [2])
+x_dirent(dirent, size (*) [276], align (*) [4])
+x_double(double, size (*) [8], align (*) [8])
+x_dqinfo(dqinfo, size (*) [24], align (*) [4])
+x_ethhdr(ethhdr, size (*) [14], align (*) [1])
+x_fd_set(fd_set, size (*) [128], align (*) [4])
+x_fenv_t(fenv_t, size (*) [28], align (*) [4])
+x_fpos_t(_G_fpos64_t, size (*) [16], align (*) [4])
+x_fsid_t(__fsid_t, size (*) [8], align (*) [4])
+x_glob_t(glob_t, size (*) [36], align (*) [4])
+x_greg_t(int, size (*) [4], align (*) [4])
+x_ifaddr(ifaddr, size (*) [40], align (*) [4])
+x_ifconf(ifconf, size (*) [8], align (*) [4])
+x_int8_t(signed char, size (*) [1], align (*) [1])
+x_ldiv_t(ldiv_t, size (*) [8], align (*) [4])
+x_linger(linger, size (*) [8], align (*) [4])
+x_mntent(mntent, size (*) [24], align (*) [4])
+x_mode_t(unsigned int, size (*) [4], align (*) [4])
+x_msgbuf(msgbuf, size (*) [8], align (*) [4])
+x_msghdr(msghdr, size (*) [28], align (*) [4])
+x_n_long(unsigned int, size (*) [4], align (*) [4])
+x_n_time(unsigned int, size (*) [4], align (*) [4])
+x_netent(netent, size (*) [16], align (*) [4])
+x_nfds_t(unsigned long, size (*) [4], align (*) [4])
+x_ns_msg(__ns_msg, size (*) [48], align (*) [4])
+x_option(option, size (*) [16], align (*) [4])
+x_passwd(passwd, size (*) [28], align (*) [4])
+x_pollfd(pollfd, size (*) [8], align (*) [4])
+x_quad_t(long long, size (*) [8], align (*) [8])
+x_rlim_t(unsigned long long, size (*) [8], align (*) [8])
+x_rlimit(rlimit, size (*) [16], align (*) [4])
+x_rusage(rusage, size (*) [72], align (*) [4])
+x_sembuf(sembuf, size (*) [6], align (*) [2])
+x_sigval(sigval, size (*) [4], align (*) [4])
+x_size_t(unsigned int, size (*) [4], align (*) [4])
+x_statfs(statfs, size (*) [84], align (*) [4])
+x_strbuf(strbuf, size (*) [12], align (*) [4])
+x_tcphdr(tcphdr, size (*) [20], align (*) [4])
+x_time_t(long, size (*) [4], align (*) [4])
+x_u_char(unsigned char, size (*) [1], align (*) [1])
+x_u_long(unsigned long, size (*) [4], align (*) [4])
+x_udphdr(udphdr, size (*) [8], align (*) [2])
+x_ushort(unsigned short, size (*) [2], align (*) [2])
+x_wint_t(unsigned int, size (*) [4], align (*) [4])
+x_Dl_info(Dl_info, size (*) [16], align (*) [4])
+x___ns_rr(__ns_rr, size (*) [1044], align (*) [4])
+x_acct_v3(acct_v3, size (*) [64], align (*) [4])
+x_caddr_t(char*, size (*) [4], align (*) [4])
+x_clock_t(long, size (*) [4], align (*) [4])
+x_cmsghdr(cmsghdr, size (*) [12], align (*) [4])
+x_fd_mask(long, size (*) [4], align (*) [4])
+x_float_t(long double, size (*) [12], align (*) [4])
+x_hostent(hostent, size (*) [20], align (*) [4])
+x_icmphdr(icmphdr, size (*) [8], align (*) [4])
+x_iconv_t(void*, size (*) [4], align (*) [4])
+x_ifaddrs(ifaddrs, size (*) [28], align (*) [4])
+x_in_addr(in_addr, size (*) [4], align (*) [4])
+x_int16_t(short, size (*) [2], align (*) [2])
+x_int32_t(int, size (*) [4], align (*) [4])
+x_int64_t(long long, size (*) [8], align (*) [8])
+x_ip6_ext(ip6_ext, size (*) [2], align (*) [1])
+x_ip6_hbh(ip6_hbh, size (*) [2], align (*) [1])
+x_ip6_hdr(ip6_hdr, size (*) [40], align (*) [4])
+x_ip6_opt(ip6_opt, size (*) [2], align (*) [1])
+x_ip_mreq(ip_mreq, size (*) [8], align (*) [4])
+x_ip_opts(ip_opts, size (*) [44], align (*) [4])
+x_jmp_buf(__jmp_buf_tag*, size (*) [156], align (*) [4])
+x_lastlog(lastlog, size (*) [292], align (*) [4])
+x_lldiv_t(lldiv_t, size (*) [16], align (*) [4])
+x_lwpid_t(int, size (*) [4], align (*) [4])
+x_mld_hdr(mld_hdr, size (*) [24], align (*) [4])
+x_mq_attr(mq_attr, size (*) [32], align (*) [4])
+x_msginfo(msginfo, size (*) [32], align (*) [4])
+x_n_short(unsigned short, size (*) [2], align (*) [2])
+x_nl_catd(void*, size (*) [4], align (*) [4])
+x_nl_item(int, size (*) [4], align (*) [4])
+x_nlink_t(unsigned int, size (*) [4], align (*) [4])
+x_ns_flag(__ns_flag, size (*) [4], align (*) [4])
+x_ns_sect(__ns_sect, size (*) [4], align (*) [4])
+x_ns_type(__ns_type, size (*) [4], align (*) [4])
+x_r_debug(r_debug, size (*) [20], align (*) [4])
+x_regex_t(re_pattern_buffer, size (*) [32], align (*) [4])
+x_res_sym(res_sym, size (*) [12], align (*) [4])
+x_rtentry(rtentry, size (*) [84], align (*) [4])
+x_seminfo(seminfo, size (*) [40], align (*) [4])
+x_servent(servent, size (*) [16], align (*) [4])
+x_shminfo(shminfo, size (*) [36], align (*) [4])
+x_speed_t(unsigned int, size (*) [4], align (*) [4])
+x_ssize_t(int, size (*) [4], align (*) [4])
+x_stack_t(sigaltstack, size (*) [12], align (*) [4])
+x_statvfs(statvfs, size (*) [96], align (*) [4])
+x_strpeek(strpeek, size (*) [28], align (*) [4])
+x_sysinfo(sysinfo, size (*) [64], align (*) [4])
+x_termios(termios, size (*) [60], align (*) [4])
+x_tftphdr(tftphdr, size (*) [5], align (*) [1])
+x_timer_t(void*, size (*) [4], align (*) [4])
+x_timeval(timeval, size (*) [8], align (*) [4])
+x_u_short(unsigned short, size (*) [2], align (*) [2])
+x_uint8_t(unsigned char, size (*) [1], align (*) [1])
+x_utimbuf(utimbuf, size (*) [8], align (*) [4])
+x_utsname(utsname, size (*) [390], align (*) [1])
+x_va_list(char*, size (*) [4], align (*) [4])
+x_wchar_t(wchar_t, size (*) [4], align (*) [4])
+x_winsize(winsize, size (*) [8], align (*) [2])
diff --git a/data/abi.i386.musl b/data/abi.i386.musl
new file mode 100644 (file)
index 0000000..b3edbe3
--- /dev/null
@@ -0,0 +1,438 @@
+x___ns_msg(__ns_msg, size (*) [48], align (*) [4])
+x__fpstate(_fpstate, size (*) [112], align (*) [4])
+x_addrinfo(addrinfo, size (*) [32], align (*) [4])
+x_bandinfo(bandinfo, size (*) [8], align (*) [4])
+x_blkcnt_t(long long, size (*) [8], align (*) [8])
+x_double_t(long double, size (*) [12], align (*) [4])
+x_idtype_t(idtype_t, size (*) [4], align (*) [4])
+x_in6_addr(in6_addr, size (*) [16], align (*) [4])
+x_intmax_t(long long, size (*) [8], align (*) [8])
+x_intptr_t(int, size (*) [4], align (*) [4])
+x_ip6_dest(ip6_dest, size (*) [2], align (*) [1])
+x_ip6_frag(ip6_frag, size (*) [8], align (*) [4])
+x_ip_mreqn(ip_mreqn, size (*) [12], align (*) [4])
+x_ipc_perm(ipc_perm, size (*) [36], align (*) [4])
+x_link_map(link_map, size (*) [20], align (*) [4])
+x_locale_t(__locale_struct*, size (*) [4], align (*) [4])
+x_msglen_t(unsigned long, size (*) [4], align (*) [4])
+x_msqid_ds(msqid_ds, size (*) [88], align (*) [4])
+x_ns_class(__ns_class, size (*) [4], align (*) [4])
+x_ns_rcode(__ns_rcode, size (*) [4], align (*) [4])
+x_protoent(protoent, size (*) [12], align (*) [4])
+x_psaddr_t(void*, size (*) [4], align (*) [4])
+x_regoff_t(int, size (*) [4], align (*) [4])
+x_semid_ds(semid_ds, size (*) [64], align (*) [4])
+x_sg_iovec(sg_iovec, size (*) [8], align (*) [4])
+x_shm_info(shm_info, size (*) [24], align (*) [4])
+x_shmatt_t(unsigned long, size (*) [4], align (*) [4])
+x_shmid_ds(shmid_ds, size (*) [84], align (*) [4])
+x_sigevent(sigevent, size (*) [64], align (*) [4])
+x_sigset_t(__sigset_t, size (*) [128], align (*) [4])
+x_sockaddr(sockaddr, size (*) [16], align (*) [2])
+x_str_list(str_list, size (*) [8], align (*) [4])
+x_strioctl(strioctl, size (*) [16], align (*) [4])
+x_tcflag_t(unsigned int, size (*) [4], align (*) [4])
+x_tcp_info(tcp_info, size (*) [120], align (*) [4])
+x_timespec(timespec, size (*) [8], align (*) [4])
+x_timezone(timezone, size (*) [8], align (*) [4])
+x_u_int8_t(unsigned char, size (*) [1], align (*) [1])
+x_u_quad_t(unsigned long long, size (*) [8], align (*) [8])
+x_uint16_t(unsigned short, size (*) [2], align (*) [2])
+x_uint32_t(unsigned int, size (*) [4], align (*) [4])
+x_uint64_t(unsigned long long, size (*) [8], align (*) [8])
+x_wctype_t(unsigned long, size (*) [4], align (*) [4])
+x_Elf32_Dyn(Elf32_Dyn, size (*) [8], align (*) [4])
+x_Elf32_Lib(Elf32_Lib, size (*) [20], align (*) [4])
+x_Elf32_Off(unsigned int, size (*) [4], align (*) [4])
+x_Elf32_Rel(Elf32_Rel, size (*) [8], align (*) [4])
+x_Elf32_Sym(Elf32_Sym, size (*) [16], align (*) [4])
+x_Elf64_Dyn(Elf64_Dyn, size (*) [16], align (*) [4])
+x_Elf64_Lib(Elf64_Lib, size (*) [20], align (*) [4])
+x_Elf64_Off(unsigned long long, size (*) [8], align (*) [8])
+x_Elf64_Rel(Elf64_Rel, size (*) [16], align (*) [4])
+x_Elf64_Sym(Elf64_Sym, size (*) [24], align (*) [4])
+x_Sg_io_hdr(sg_io_hdr, size (*) [64], align (*) [4])
+x___jmp_buf(unsigned long*, size (*) [24], align (*) [4])
+x_blksize_t(long, size (*) [4], align (*) [4])
+x_clockid_t(int, size (*) [4], align (*) [4])
+x_cpu_set_t(cpu_set_t, size (*) [128], align (*) [4])
+x_ether_arp(ether_arp, size (*) [28], align (*) [2])
+x_eventfd_t(unsigned long long, size (*) [8], align (*) [8])
+x_fexcept_t(unsigned short, size (*) [2], align (*) [2])
+x_gregset_t(int*, size (*) [76], align (*) [4])
+x_group_req(group_req, size (*) [132], align (*) [4])
+x_icmp6_hdr(icmp6_hdr, size (*) [8], align (*) [4])
+x_imaxdiv_t(imaxdiv_t, size (*) [16], align (*) [4])
+x_in6_rtmsg(in6_rtmsg, size (*) [72], align (*) [4])
+x_in_addr_t(unsigned int, size (*) [4], align (*) [4])
+x_in_port_t(unsigned short, size (*) [2], align (*) [2])
+x_ip6_rthdr(ip6_rthdr, size (*) [4], align (*) [1])
+x_ipv6_mreq(ipv6_mreq, size (*) [20], align (*) [4])
+x_itimerval(itimerval, size (*) [16], align (*) [4])
+x_long_long(long long, size (*) [8], align (*) [8])
+x_mbstate_t(__mbstate_t, size (*) [8], align (*) [4])
+x_msgqnum_t(unsigned long, size (*) [4], align (*) [4])
+x_ns_opcode(__ns_opcode, size (*) [4], align (*) [4])
+x_pthread_t(unsigned long, size (*) [4], align (*) [4])
+x_ptrdiff_t(int, size (*) [4], align (*) [4])
+x_res_state(__res_state*, size (*) [4], align (*) [4])
+x_rr_result(rr_result, size (*) [24], align (*) [4])
+x_sg_header(sg_header, size (*) [36], align (*) [4])
+x_sg_io_hdr(sg_io_hdr, size (*) [64], align (*) [4])
+x_sigaction(sigaction, size (*) [140], align (*) [4])
+x_siginfo_t(siginfo_t, size (*) [128], align (*) [4])
+x_socklen_t(unsigned int, size (*) [4], align (*) [4])
+x_str_mlist(str_mlist, size (*) [9], align (*) [1])
+x_strrecvfd(strrecvfd, size (*) [20], align (*) [4])
+x_timestamp(timestamp, size (*) [40], align (*) [4])
+x_u_int16_t(unsigned short, size (*) [2], align (*) [2])
+x_u_int32_t(unsigned int, size (*) [4], align (*) [4])
+x_u_int64_t(unsigned long long, size (*) [8], align (*) [8])
+x_uintmax_t(unsigned long long, size (*) [8], align (*) [8])
+x_uintptr_t(unsigned int, size (*) [4], align (*) [4])
+x_wctrans_t(int const*, size (*) [4], align (*) [4])
+x_wordexp_t(wordexp_t, size (*) [12], align (*) [4])
+x_Elf32_Addr(unsigned int, size (*) [4], align (*) [4])
+x_Elf32_Ehdr(Elf32_Ehdr, size (*) [52], align (*) [4])
+x_Elf32_Half(unsigned short, size (*) [2], align (*) [2])
+x_Elf32_Move(Elf32_Move, size (*) [20], align (*) [4])
+x_Elf32_Nhdr(Elf32_Nhdr, size (*) [12], align (*) [4])
+x_Elf32_Phdr(Elf32_Phdr, size (*) [32], align (*) [4])
+x_Elf32_Rela(Elf32_Rela, size (*) [12], align (*) [4])
+x_Elf32_Shdr(Elf32_Shdr, size (*) [40], align (*) [4])
+x_Elf32_Word(unsigned int, size (*) [4], align (*) [4])
+x_Elf64_Addr(unsigned long long, size (*) [8], align (*) [8])
+x_Elf64_Ehdr(Elf64_Ehdr, size (*) [64], align (*) [4])
+x_Elf64_Half(unsigned short, size (*) [2], align (*) [2])
+x_Elf64_Move(Elf64_Move, size (*) [28], align (*) [4])
+x_Elf64_Nhdr(Elf64_Nhdr, size (*) [12], align (*) [4])
+x_Elf64_Phdr(Elf64_Phdr, size (*) [56], align (*) [4])
+x_Elf64_Rela(Elf64_Rela, size (*) [24], align (*) [4])
+x_Elf64_Shdr(Elf64_Shdr, size (*) [64], align (*) [4])
+x_Elf64_Word(unsigned int, size (*) [4], align (*) [4])
+x_Elf_Symndx(unsigned int, size (*) [4], align (*) [4])
+x_Sg_scsi_id(sg_scsi_id, size (*) [32], align (*) [4])
+x_arpreq_old(arpreq_old, size (*) [52], align (*) [4])
+x_crypt_data(crypt_data, size (*) [260], align (*) [4])
+x_elf_greg_t(unsigned long, size (*) [4], align (*) [4])
+x_epoll_data(epoll_data, size (*) [8], align (*) [4])
+x_ether_addr(ether_addr, size (*) [6], align (*) [1])
+x_f_owner_ex(f_owner_ex, size (*) [8], align (*) [4])
+x_fpregset_t(_fpstate*, size (*) [4], align (*) [4])
+x_fsblkcnt_t(unsigned long long, size (*) [8], align (*) [8])
+x_fsfilcnt_t(unsigned long long, size (*) [8], align (*) [8])
+x_in_pktinfo(in_pktinfo, size (*) [12], align (*) [4])
+x_ip6_rthdr0(ip6_rthdr0, size (*) [8], align (*) [4])
+x_itimerspec(itimerspec, size (*) [16], align (*) [4])
+x_mcontext_t(mcontext_t, size (*) [88], align (*) [4])
+x_nd_opt_hdr(nd_opt_hdr, size (*) [2], align (*) [1])
+x_nd_opt_mtu(nd_opt_mtu, size (*) [8], align (*) [4])
+x_ntptimeval(ntptimeval, size (*) [16], align (*) [4])
+x_prpsinfo_t(elf_prpsinfo, size (*) [124], align (*) [4])
+x_prstatus_t(elf_prstatus, size (*) [144], align (*) [4])
+x_register_t(int, size (*) [4], align (*) [4])
+x_regmatch_t(regmatch_t, size (*) [8], align (*) [4])
+x_rr_pco_use(rr_pco_use, size (*) [32], align (*) [4])
+x_sg_iovec_t(sg_iovec, size (*) [8], align (*) [4])
+x_sg_scsi_id(sg_scsi_id, size (*) [32], align (*) [4])
+x_sigcontext(sigcontext, size (*) [88], align (*) [4])
+x_sigjmp_buf(__jmp_buf_tag*, size (*) [156], align (*) [4])
+x_tcp_md5sig(tcp_md5sig, size (*) [216], align (*) [4])
+x_ucontext_t(ucontext, size (*) [348], align (*) [4])
+x_useconds_t(unsigned int, size (*) [4], align (*) [4])
+x_Elf32_Sword(int, size (*) [4], align (*) [4])
+x_Elf32_Xword(unsigned long long, size (*) [8], align (*) [8])
+x_Elf32_gptab(Elf32_gptab, size (*) [8], align (*) [4])
+x_Elf64_Sword(int, size (*) [4], align (*) [4])
+x_Elf64_Xword(unsigned long long, size (*) [8], align (*) [8])
+x_Elf_Options(Elf_Options, size (*) [8], align (*) [4])
+x_Sg_req_info(sg_req_info, size (*) [20], align (*) [4])
+x___res_state(__res_state, size (*) [512], align (*) [4])
+x_elf_siginfo(elf_siginfo, size (*) [12], align (*) [4])
+x_epoll_event(epoll_event, size (*) [12], align (*) [4])
+x_in6_pktinfo(in6_pktinfo, size (*) [20], align (*) [4])
+x_int_fast8_t(signed char, size (*) [1], align (*) [1])
+x_ip6_mtuinfo(ip6_mtuinfo, size (*) [32], align (*) [4])
+x_ip_msfilter(ip_msfilter, size (*) [20], align (*) [4])
+x_long_double(long double, size (*) [12], align (*) [4])
+x_nd_redirect(nd_redirect, size (*) [40], align (*) [4])
+x_ns_tsig_key(ns_tsig_key, size (*) [2060], align (*) [4])
+x_packet_mreq(packet_mreq, size (*) [16], align (*) [4])
+x_prgregset_t(unsigned long*, size (*) [68], align (*) [4])
+x_sa_family_t(unsigned short, size (*) [2], align (*) [2])
+x_sched_param(sched_param, size (*) [28], align (*) [4])
+x_sg_io_hdr_t(sg_io_hdr, size (*) [64], align (*) [4])
+x_sg_req_info(sg_req_info, size (*) [20], align (*) [4])
+x_sigaltstack(sigaltstack, size (*) [12], align (*) [4])
+x_sockaddr_in(sockaddr_in, size (*) [16], align (*) [4])
+x_sockaddr_ll(sockaddr_ll, size (*) [20], align (*) [4])
+x_sockaddr_un(sockaddr_un, size (*) [110], align (*) [2])
+x_strfdinsert(strfdinsert, size (*) [36], align (*) [4])
+x_suseconds_t(long, size (*) [4], align (*) [4])
+x_Elf32_Sxword(long long, size (*) [8], align (*) [8])
+x_Elf32_Verdef(Elf32_Verdef, size (*) [20], align (*) [4])
+x_Elf32_Versym(unsigned short, size (*) [2], align (*) [2])
+x_Elf32_auxv_t(Elf32_auxv_t, size (*) [8], align (*) [4])
+x_Elf64_Sxword(long long, size (*) [8], align (*) [8])
+x_Elf64_Verdef(Elf64_Verdef, size (*) [20], align (*) [4])
+x_Elf64_Versym(unsigned short, size (*) [2], align (*) [2])
+x_Elf64_auxv_t(Elf64_auxv_t, size (*) [16], align (*) [4])
+x__ns_flagdata(_ns_flagdata, size (*) [8], align (*) [4])
+x_arpd_request(arpd_request, size (*) [28], align (*) [4])
+x_dl_phdr_info(dl_phdr_info, size (*) [40], align (*) [4])
+x_elf_prpsinfo(elf_prpsinfo, size (*) [124], align (*) [4])
+x_elf_prstatus(elf_prstatus, size (*) [144], align (*) [4])
+x_epoll_data_t(epoll_data, size (*) [8], align (*) [4])
+x_ether_header(ether_header, size (*) [14], align (*) [2])
+x_group_filter(group_filter, size (*) [268], align (*) [4])
+x_icmp6_filter(icmp6_filter, size (*) [32], align (*) [4])
+x_icmp_ra_addr(icmp_ra_addr, size (*) [8], align (*) [4])
+x_if_nameindex(if_nameindex, size (*) [8], align (*) [4])
+x_int_fast16_t(int, size (*) [4], align (*) [4])
+x_int_fast32_t(int, size (*) [4], align (*) [4])
+x_int_fast64_t(long long, size (*) [8], align (*) [8])
+x_int_least8_t(signed char, size (*) [1], align (*) [1])
+x_ip6_opt_nsap(ip6_opt_nsap, size (*) [4], align (*) [1])
+x_ip_timestamp(ip_timestamp, size (*) [40], align (*) [4])
+x_mt_tape_info(mt_tape_info, size (*) [8], align (*) [4])
+x_mtconfiginfo(mtconfiginfo, size (*) [32], align (*) [4])
+x_ns_key_types(__ns_key_types, size (*) [4], align (*) [4])
+x_prfpregset_t(user_fpregs_struct, size (*) [108], align (*) [4])
+x_rr_pco_match(rr_pco_match, size (*) [24], align (*) [4])
+x_sig_atomic_t(int, size (*) [4], align (*) [4])
+x_sighandler_t(void (*)(int), size (*) [4], align (*) [4])
+x_sockaddr_in6(sockaddr_in6, size (*) [28], align (*) [4])
+x_uint_fast8_t(unsigned char, size (*) [1], align (*) [1])
+x_Elf32_RegInfo(Elf32_RegInfo, size (*) [24], align (*) [4])
+x_Elf32_Section(unsigned short, size (*) [2], align (*) [2])
+x_Elf32_Syminfo(Elf32_Syminfo, size (*) [4], align (*) [2])
+x_Elf32_Verdaux(Elf32_Verdaux, size (*) [8], align (*) [4])
+x_Elf32_Vernaux(Elf32_Vernaux, size (*) [16], align (*) [4])
+x_Elf32_Verneed(Elf32_Verneed, size (*) [16], align (*) [4])
+x_Elf64_Section(unsigned short, size (*) [2], align (*) [2])
+x_Elf64_Syminfo(Elf64_Syminfo, size (*) [4], align (*) [2])
+x_Elf64_Verdaux(Elf64_Verdaux, size (*) [8], align (*) [4])
+x_Elf64_Vernaux(Elf64_Vernaux, size (*) [16], align (*) [4])
+x_Elf64_Verneed(Elf64_Verneed, size (*) [16], align (*) [4])
+x___jmp_buf_tag(__jmp_buf_tag, size (*) [156], align (*) [4])
+x_elf_gregset_t(unsigned long*, size (*) [68], align (*) [4])
+x_inotify_event(inotify_event, size (*) [16], align (*) [4])
+x_int_least16_t(short, size (*) [2], align (*) [2])
+x_int_least32_t(int, size (*) [4], align (*) [4])
+x_int_least64_t(long long, size (*) [8], align (*) [8])
+x_ip6_opt_jumbo(ip6_opt_jumbo, size (*) [6], align (*) [1])
+x_nd_opt_rd_hdr(nd_opt_rd_hdr, size (*) [8], align (*) [4])
+x_ns_cert_types(__ns_cert_types, size (*) [4], align (*) [4])
+x_pthread_key_t(unsigned int, size (*) [4], align (*) [4])
+x_sg_req_info_t(sg_req_info, size (*) [20], align (*) [4])
+x_uint_fast16_t(unsigned int, size (*) [4], align (*) [4])
+x_uint_fast32_t(unsigned int, size (*) [4], align (*) [4])
+x_uint_fast64_t(unsigned long long, size (*) [8], align (*) [8])
+x_uint_least8_t(unsigned char, size (*) [1], align (*) [1])
+x_Elf32_Conflict(unsigned int, size (*) [4], align (*) [4])
+x_Elf_Options_Hw(Elf_Options_Hw, size (*) [8], align (*) [4])
+x_elf_fpregset_t(user_fpregs_struct, size (*) [108], align (*) [4])
+x_ip6_opt_router(ip6_opt_router, size (*) [4], align (*) [1])
+x_ip6_opt_tunnel(ip6_opt_tunnel, size (*) [3], align (*) [1])
+x_ip_mreq_source(ip_mreq_source, size (*) [12], align (*) [4])
+x_pthread_attr_t(pthread_attr_t, size (*) [36], align (*) [4])
+x_pthread_cond_t(pthread_cond_t, size (*) [48], align (*) [4])
+x_pthread_once_t(int, size (*) [4], align (*) [4])
+x_uint_least16_t(unsigned short, size (*) [2], align (*) [2])
+x_uint_least32_t(unsigned int, size (*) [4], align (*) [4])
+x_uint_least64_t(unsigned long long, size (*) [8], align (*) [8])
+x_pthread_mutex_t(pthread_mutex_t, size (*) [24], align (*) [4])
+x_ccs_modesel_head(ccs_modesel_head, size (*) [12], align (*) [1])
+x_group_source_req(group_source_req, size (*) [260], align (*) [4])
+x_nd_router_advert(nd_router_advert, size (*) [16], align (*) [4])
+x_pthread_rwlock_t(pthread_rwlock_t, size (*) [32], align (*) [4])
+x_signalfd_siginfo(signalfd_siginfo, size (*) [128], align (*) [4])
+x_sockaddr_storage(sockaddr_storage, size (*) [128], align (*) [4])
+x_user_regs_struct(user_regs_struct, size (*) [68], align (*) [4])
+x_fanotify_response(fanotify_response, size (*) [8], align (*) [4])
+x_nd_router_solicit(nd_router_solicit, size (*) [8], align (*) [4])
+x_ns_tcp_tsig_state(ns_tcp_tsig_state, size (*) [528], align (*) [4])
+x_posix_spawnattr_t(posix_spawnattr_t, size (*) [336], align (*) [4])
+x_pthread_barrier_t(pthread_barrier_t, size (*) [20], align (*) [4])
+x_re_pattern_buffer(re_pattern_buffer, size (*) [32], align (*) [4])
+x_icmp6_router_renum(icmp6_router_renum, size (*) [16], align (*) [4])
+x_nd_neighbor_advert(nd_neighbor_advert, size (*) [24], align (*) [4])
+x_nd_opt_prefix_info(nd_opt_prefix_info, size (*) [32], align (*) [4])
+x_pthread_condattr_t(pthread_condattr_t, size (*) [4], align (*) [4])
+x_pthread_spinlock_t(int, size (*) [4], align (*) [4])
+x_user_fpregs_struct(user_fpregs_struct, size (*) [108], align (*) [4])
+x_nd_neighbor_solicit(nd_neighbor_solicit, size (*) [24], align (*) [4])
+x_nd_opt_adv_interval(nd_opt_adv_interval, size (*) [8], align (*) [4])
+x_ns_update_operation(__ns_update_operation, size (*) [4], align (*) [4])
+x_pthread_mutexattr_t(pthread_mutexattr_t, size (*) [4], align (*) [4])
+x_pthread_rwlockattr_t(pthread_rwlockattr_t, size (*) [8], align (*) [4])
+x_pthread_barrierattr_t(pthread_barrierattr_t, size (*) [4], align (*) [4])
+x_nd_opt_home_agent_info(nd_opt_home_agent_info, size (*) [8], align (*) [2])
+x_fanotify_event_metadata(fanotify_event_metadata, size (*) [24], align (*) [8])
+x_posix_spawn_file_actions_t(posix_spawn_file_actions_t, size (*) [76], align (*) [4])
+x_ip(ip, size (*) [20], align (*) [4])
+x_tm(tm, size (*) [44], align (*) [4])
+x_FTW(FTW, size (*) [8], align (*) [4])
+x_int(int, size (*) [4], align (*) [4])
+x_tms(tms, size (*) [16], align (*) [4])
+y_DIR(__dirstream*, size (*) [4], align (*) [4])
+x_CODE(CODE, size (*) [8], align (*) [4])
+x_acct(acct, size (*) [64], align (*) [4])
+x_bool(bool, size (*) [1], align (*) [1])
+x_cc_t(unsigned char, size (*) [1], align (*) [1])
+x_char(char, size (*) [1], align (*) [1])
+x_icmp(icmp, size (*) [28], align (*) [4])
+x_id_t(unsigned int, size (*) [4], align (*) [4])
+x_igmp(igmp, size (*) [8], align (*) [4])
+x_long(long, size (*) [4], align (*) [4])
+x_mtop(mtop, size (*) [8], align (*) [4])
+x_spwd(spwd, size (*) [36], align (*) [4])
+x_stat(stat, size (*) [96], align (*) [4])
+x_uint(unsigned int, size (*) [4], align (*) [4])
+x_user(user, size (*) [284], align (*) [4])
+y_FILE(_IO_FILE*, size (*) [4], align (*) [4])
+y_void(void*, size (*) [4], align (*) [4])
+x_ENTRY(entry, size (*) [8], align (*) [4])
+x_VISIT(VISIT, size (*) [4], align (*) [4])
+x_aiocb(aiocb, size (*) [144], align (*) [4])
+x_dev_t(unsigned long long, size (*) [8], align (*) [8])
+x_div_t(div_t, size (*) [8], align (*) [4])
+x_dqblk(dqblk, size (*) [68], align (*) [4])
+x_entry(entry, size (*) [8], align (*) [4])
+x_float(float, size (*) [4], align (*) [4])
+x_flock(flock, size (*) [24], align (*) [4])
+x_gid_t(unsigned int, size (*) [4], align (*) [4])
+x_group(group, size (*) [16], align (*) [4])
+x_ifmap(ifmap, size (*) [16], align (*) [4])
+x_ifreq(ifreq, size (*) [32], align (*) [4])
+x_ino_t(unsigned long long, size (*) [8], align (*) [8])
+x_iovec(iovec, size (*) [8], align (*) [4])
+x_iphdr(iphdr, size (*) [20], align (*) [4])
+x_key_t(int, size (*) [4], align (*) [4])
+x_lconv(lconv, size (*) [56], align (*) [4])
+x_mqd_t(int, size (*) [4], align (*) [4])
+x_mtget(mtget, size (*) [28], align (*) [4])
+x_mtpos(mtpos, size (*) [4], align (*) [4])
+x_ns_rr(__ns_rr, size (*) [1044], align (*) [4])
+x_off_t(long long, size (*) [8], align (*) [8])
+x_pid_t(int, size (*) [4], align (*) [4])
+x_qelem(qelem, size (*) [12], align (*) [4])
+x_sem_t(sem_t, size (*) [16], align (*) [4])
+x_short(short, size (*) [2], align (*) [2])
+x_sig_t(void (*)(int), size (*) [4], align (*) [4])
+x_timeb(timeb, size (*) [12], align (*) [4])
+x_timex(timex, size (*) [128], align (*) [4])
+x_u_int(unsigned int, size (*) [4], align (*) [4])
+x_ucred(ucred, size (*) [12], align (*) [4])
+x_uid_t(unsigned int, size (*) [4], align (*) [4])
+x_ulong(unsigned long, size (*) [4], align (*) [4])
+x_utmpx(utmpx, size (*) [384], align (*) [4])
+x_ACTION(ACTION, size (*) [4], align (*) [4])
+x_HEADER(HEADER, size (*) [12], align (*) [4])
+x_ar_hdr(ar_hdr, size (*) [60], align (*) [1])
+x_arphdr(arphdr, size (*) [8], align (*) [2])
+x_arpreq(arpreq, size (*) [68], align (*) [4])
+x_comp_t(unsigned short, size (*) [2], align (*) [2])
+x_dirent(dirent, size (*) [276], align (*) [4])
+x_double(double, size (*) [8], align (*) [8])
+x_dqinfo(dqinfo, size (*) [24], align (*) [4])
+x_ethhdr(ethhdr, size (*) [14], align (*) [2])
+x_fd_set(fd_set, size (*) [128], align (*) [4])
+x_fenv_t(fenv_t, size (*) [28], align (*) [4])
+x_fpos_t(_G_fpos64_t, size (*) [16], align (*) [4])
+x_fsid_t(__fsid_t, size (*) [8], align (*) [4])
+x_glob_t(glob_t, size (*) [36], align (*) [4])
+x_greg_t(int, size (*) [4], align (*) [4])
+x_ifaddr(ifaddr, size (*) [40], align (*) [4])
+x_ifconf(ifconf, size (*) [8], align (*) [4])
+x_int8_t(signed char, size (*) [1], align (*) [1])
+x_ldiv_t(ldiv_t, size (*) [8], align (*) [4])
+x_linger(linger, size (*) [8], align (*) [4])
+x_mntent(mntent, size (*) [24], align (*) [4])
+x_mode_t(unsigned int, size (*) [4], align (*) [4])
+x_msgbuf(msgbuf, size (*) [8], align (*) [4])
+x_msghdr(msghdr, size (*) [28], align (*) [4])
+x_n_long(unsigned int, size (*) [4], align (*) [4])
+x_n_time(unsigned int, size (*) [4], align (*) [4])
+x_netent(netent, size (*) [16], align (*) [4])
+x_nfds_t(unsigned long, size (*) [4], align (*) [4])
+x_ns_msg(__ns_msg, size (*) [48], align (*) [4])
+x_option(option, size (*) [16], align (*) [4])
+x_passwd(passwd, size (*) [28], align (*) [4])
+x_pollfd(pollfd, size (*) [8], align (*) [4])
+x_quad_t(long long, size (*) [8], align (*) [8])
+x_rlim_t(unsigned long long, size (*) [8], align (*) [8])
+x_rlimit(rlimit, size (*) [16], align (*) [4])
+x_rusage(rusage, size (*) [136], align (*) [4])
+x_sembuf(sembuf, size (*) [6], align (*) [2])
+x_sigval(sigval, size (*) [4], align (*) [4])
+x_size_t(unsigned int, size (*) [4], align (*) [4])
+x_statfs(statfs, size (*) [84], align (*) [4])
+x_strbuf(strbuf, size (*) [12], align (*) [4])
+x_tcphdr(tcphdr, size (*) [20], align (*) [4])
+x_time_t(long, size (*) [4], align (*) [4])
+x_u_char(unsigned char, size (*) [1], align (*) [1])
+x_u_long(unsigned long, size (*) [4], align (*) [4])
+x_udphdr(udphdr, size (*) [8], align (*) [2])
+x_ushort(unsigned short, size (*) [2], align (*) [2])
+x_wint_t(unsigned int, size (*) [4], align (*) [4])
+x_Dl_info(Dl_info, size (*) [16], align (*) [4])
+x___ns_rr(__ns_rr, size (*) [1044], align (*) [4])
+x_acct_v3(acct_v3, size (*) [64], align (*) [4])
+x_caddr_t(char*, size (*) [4], align (*) [4])
+x_clock_t(long, size (*) [4], align (*) [4])
+x_cmsghdr(cmsghdr, size (*) [12], align (*) [4])
+x_fd_mask(unsigned long, size (*) [4], align (*) [4])
+x_float_t(long double, size (*) [12], align (*) [4])
+x_hostent(hostent, size (*) [20], align (*) [4])
+x_icmphdr(icmphdr, size (*) [8], align (*) [4])
+x_iconv_t(void*, size (*) [4], align (*) [4])
+x_ifaddrs(ifaddrs, size (*) [28], align (*) [4])
+x_in_addr(in_addr, size (*) [4], align (*) [4])
+x_int16_t(short, size (*) [2], align (*) [2])
+x_int32_t(int, size (*) [4], align (*) [4])
+x_int64_t(long long, size (*) [8], align (*) [8])
+x_ip6_ext(ip6_ext, size (*) [2], align (*) [1])
+x_ip6_hbh(ip6_hbh, size (*) [2], align (*) [1])
+x_ip6_hdr(ip6_hdr, size (*) [40], align (*) [4])
+x_ip6_opt(ip6_opt, size (*) [2], align (*) [1])
+x_ip_mreq(ip_mreq, size (*) [8], align (*) [4])
+x_ip_opts(ip_opts, size (*) [44], align (*) [4])
+x_jmp_buf(__jmp_buf_tag*, size (*) [156], align (*) [4])
+x_lastlog(lastlog, size (*) [292], align (*) [4])
+x_lldiv_t(lldiv_t, size (*) [16], align (*) [4])
+x_lwpid_t(int, size (*) [4], align (*) [4])
+x_mld_hdr(mld_hdr, size (*) [24], align (*) [4])
+x_mq_attr(mq_attr, size (*) [32], align (*) [4])
+x_msginfo(msginfo, size (*) [32], align (*) [4])
+x_n_short(unsigned short, size (*) [2], align (*) [2])
+x_nl_catd(void*, size (*) [4], align (*) [4])
+x_nl_item(int, size (*) [4], align (*) [4])
+x_nlink_t(unsigned int, size (*) [4], align (*) [4])
+x_ns_flag(__ns_flag, size (*) [4], align (*) [4])
+x_ns_sect(__ns_sect, size (*) [4], align (*) [4])
+x_ns_type(__ns_type, size (*) [4], align (*) [4])
+x_r_debug(r_debug, size (*) [20], align (*) [4])
+x_regex_t(re_pattern_buffer, size (*) [32], align (*) [4])
+x_res_sym(res_sym, size (*) [12], align (*) [4])
+x_rtentry(rtentry, size (*) [84], align (*) [4])
+x_seminfo(seminfo, size (*) [40], align (*) [4])
+x_servent(servent, size (*) [16], align (*) [4])
+x_shminfo(shminfo, size (*) [36], align (*) [4])
+x_speed_t(unsigned int, size (*) [4], align (*) [4])
+x_ssize_t(int, size (*) [4], align (*) [4])
+x_stack_t(sigaltstack, size (*) [12], align (*) [4])
+x_statvfs(statvfs, size (*) [96], align (*) [4])
+x_strpeek(strpeek, size (*) [28], align (*) [4])
+x_sysinfo(sysinfo, size (*) [312], align (*) [4])
+x_termios(termios, size (*) [60], align (*) [4])
+x_tftphdr(tftphdr, size (*) [6], align (*) [2])
+x_timer_t(void*, size (*) [4], align (*) [4])
+x_timeval(timeval, size (*) [8], align (*) [4])
+x_u_short(unsigned short, size (*) [2], align (*) [2])
+x_uint8_t(unsigned char, size (*) [1], align (*) [1])
+x_utimbuf(utimbuf, size (*) [8], align (*) [4])
+x_utsname(utsname, size (*) [390], align (*) [1])
+x_va_list(char*, size (*) [4], align (*) [4])
+x_wchar_t(wchar_t, size (*) [4], align (*) [4])
+x_winsize(winsize, size (*) [8], align (*) [2])