I see libc6-dev
have files installed in /usr/include/x86_64-linux-gnu
.
It seems that files in /usr/include/x86_64-linux-gnu/sys are pointed by symlinks from /usr/include/sys. And it seems that /usr/include/bits/ and /usr/include/x86_64-linux-gnu/bits have the same files.
Are /usr/include/x86_64-linux-gnu/sys
and /usr/include/sys
exactly the same?
Are /usr/include/bits
and /usr/include/x86_64-linux-gnu/bits
exactly the same?
$ ls -gG /usr/include/sys/wait.h
lrwxrwxrwx 1 30 2021/01/05-00:47:42 /usr/include/sys/wait.h -> ../x86_64-linux-gnu/sys/wait.h
$ ls /usr/include/sys/ | wc -l
82
$ ls /usr/include/x86_64-linux-gnu/sys/ | wc -l
82
$ cmp /usr/include/bits/a.out.h /usr/include/x86_64-linux-gnu/bits/a.out.h
$ ls /usr/include/bits/ | wc -l
172
$ ls /usr/include/x86_64-linux-gnu/bits/ | wc -l
172
What files are in the sys/ directory and what files are in the bits/ directory?
Which package installs files in /usr/include/bits? I can not find the package that installs for example the following file.
$ apt-file search /usr/include/bits/a.out.h
Why only fpu_control.h
in x86_64-linux-gnu/
is linked to /usr/include/
?
/usr/include$ ls -l a.out.h fpu_control.h ieee754.h
ls: cannot access 'a.out.h': No such file or directory
ls: cannot access 'ieee754.h': No such file or directory
lrwxrwxrwx 1 root root 30 2021/01/05-00:47:42 fpu_control.h -> x86_64-linux-gnu/fpu_control.h
/usr/include/x86_64-linux-gnu/a.out.h
/usr/include/x86_64-linux-gnu/fpu_control.h
/usr/include/x86_64-linux-gnu/ieee754.h
/usr/include/x86_64-linux-gnu/bits/a.out.h
/usr/include/x86_64-linux-gnu/bits/argp-ldbl.h
/usr/include/x86_64-linux-gnu/bits/auxv.h
/usr/include/x86_64-linux-gnu/bits/byteswap.h
/usr/include/x86_64-linux-gnu/bits/cmathcalls.h
/usr/include/x86_64-linux-gnu/bits/confname.h
/usr/include/x86_64-linux-gnu/bits/cpu-set.h
/usr/include/x86_64-linux-gnu/bits/dirent.h
/usr/include/x86_64-linux-gnu/bits/dirent_ext.h
/usr/include/x86_64-linux-gnu/bits/dlfcn.h
/usr/include/x86_64-linux-gnu/bits/elfclass.h
/usr/include/x86_64-linux-gnu/bits/endian.h
/usr/include/x86_64-linux-gnu/bits/endianness.h
/usr/include/x86_64-linux-gnu/bits/environments.h
/usr/include/x86_64-linux-gnu/bits/epoll.h
/usr/include/x86_64-linux-gnu/bits/err-ldbl.h
/usr/include/x86_64-linux-gnu/bits/errno.h
/usr/include/x86_64-linux-gnu/bits/error-ldbl.h
/usr/include/x86_64-linux-gnu/bits/error.h
/usr/include/x86_64-linux-gnu/bits/eventfd.h
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h
/usr/include/x86_64-linux-gnu/bits/fcntl.h
/usr/include/x86_64-linux-gnu/bits/fcntl2.h
/usr/include/x86_64-linux-gnu/bits/fenv.h
/usr/include/x86_64-linux-gnu/bits/fenvinline.h
/usr/include/x86_64-linux-gnu/bits/floatn-common.h
/usr/include/x86_64-linux-gnu/bits/floatn.h
/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
/usr/include/x86_64-linux-gnu/bits/fp-fast.h
/usr/include/x86_64-linux-gnu/bits/fp-logb.h
/usr/include/x86_64-linux-gnu/bits/getopt_core.h
/usr/include/x86_64-linux-gnu/bits/getopt_ext.h
/usr/include/x86_64-linux-gnu/bits/getopt_posix.h
/usr/include/x86_64-linux-gnu/bits/hwcap.h
/usr/include/x86_64-linux-gnu/bits/in.h
/usr/include/x86_64-linux-gnu/bits/indirect-return.h
/usr/include/x86_64-linux-gnu/bits/initspin.h
/usr/include/x86_64-linux-gnu/bits/inotify.h
/usr/include/x86_64-linux-gnu/bits/ioctl-types.h
/usr/include/x86_64-linux-gnu/bits/ioctls.h
/usr/include/x86_64-linux-gnu/bits/ipc-perm.h
/usr/include/x86_64-linux-gnu/bits/ipc.h
/usr/include/x86_64-linux-gnu/bits/ipctypes.h
/usr/include/x86_64-linux-gnu/bits/iscanonical.h
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
/usr/include/x86_64-linux-gnu/bits/link.h
/usr/include/x86_64-linux-gnu/bits/local_lim.h
/usr/include/x86_64-linux-gnu/bits/locale.h
/usr/include/x86_64-linux-gnu/bits/long-double.h
/usr/include/x86_64-linux-gnu/bits/math-vector.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
/usr/include/x86_64-linux-gnu/bits/mathcalls.h
/usr/include/x86_64-linux-gnu/bits/mathdef.h
/usr/include/x86_64-linux-gnu/bits/mathinline.h
/usr/include/x86_64-linux-gnu/bits/mman-linux.h
/usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h
/usr/include/x86_64-linux-gnu/bits/mman-shared.h
/usr/include/x86_64-linux-gnu/bits/mman.h
/usr/include/x86_64-linux-gnu/bits/monetary-ldbl.h
/usr/include/x86_64-linux-gnu/bits/mqueue.h
/usr/include/x86_64-linux-gnu/bits/mqueue2.h
/usr/include/x86_64-linux-gnu/bits/msq-pad.h
/usr/include/x86_64-linux-gnu/bits/msq.h
/usr/include/x86_64-linux-gnu/bits/netdb.h
/usr/include/x86_64-linux-gnu/bits/param.h
/usr/include/x86_64-linux-gnu/bits/poll.h
/usr/include/x86_64-linux-gnu/bits/poll2.h
/usr/include/x86_64-linux-gnu/bits/posix1_lim.h
/usr/include/x86_64-linux-gnu/bits/posix2_lim.h
/usr/include/x86_64-linux-gnu/bits/posix_opt.h
/usr/include/x86_64-linux-gnu/bits/printf-ldbl.h
/usr/include/x86_64-linux-gnu/bits/procfs-extra.h
/usr/include/x86_64-linux-gnu/bits/procfs-id.h
/usr/include/x86_64-linux-gnu/bits/procfs-prregset.h
/usr/include/x86_64-linux-gnu/bits/procfs.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
/usr/include/x86_64-linux-gnu/bits/ptrace-shared.h
/usr/include/x86_64-linux-gnu/bits/resource.h
/usr/include/x86_64-linux-gnu/bits/sched.h
/usr/include/x86_64-linux-gnu/bits/select.h
/usr/include/x86_64-linux-gnu/bits/select2.h
/usr/include/x86_64-linux-gnu/bits/sem-pad.h
/usr/include/x86_64-linux-gnu/bits/sem.h
/usr/include/x86_64-linux-gnu/bits/semaphore.h
/usr/include/x86_64-linux-gnu/bits/setjmp.h
/usr/include/x86_64-linux-gnu/bits/setjmp2.h
/usr/include/x86_64-linux-gnu/bits/shm-pad.h
/usr/include/x86_64-linux-gnu/bits/shm.h
/usr/include/x86_64-linux-gnu/bits/shmlba.h
/usr/include/x86_64-linux-gnu/bits/sigaction.h
/usr/include/x86_64-linux-gnu/bits/sigcontext.h
/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h
/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h
/usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h
/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h
/usr/include/x86_64-linux-gnu/bits/signal_ext.h
/usr/include/x86_64-linux-gnu/bits/signalfd.h
/usr/include/x86_64-linux-gnu/bits/signum-generic.h
/usr/include/x86_64-linux-gnu/bits/signum.h
/usr/include/x86_64-linux-gnu/bits/sigstack.h
/usr/include/x86_64-linux-gnu/bits/sigthread.h
/usr/include/x86_64-linux-gnu/bits/sockaddr.h
/usr/include/x86_64-linux-gnu/bits/socket-constants.h
/usr/include/x86_64-linux-gnu/bits/socket.h
/usr/include/x86_64-linux-gnu/bits/socket2.h
/usr/include/x86_64-linux-gnu/bits/socket_type.h
/usr/include/x86_64-linux-gnu/bits/ss_flags.h
/usr/include/x86_64-linux-gnu/bits/stat.h
/usr/include/x86_64-linux-gnu/bits/statfs.h
/usr/include/x86_64-linux-gnu/bits/statvfs.h
/usr/include/x86_64-linux-gnu/bits/statx-generic.h
/usr/include/x86_64-linux-gnu/bits/statx.h
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
/usr/include/x86_64-linux-gnu/bits/stdio-ldbl.h
/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/include/x86_64-linux-gnu/bits/stdio2.h
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h
/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
/usr/include/x86_64-linux-gnu/bits/stdlib-ldbl.h
/usr/include/x86_64-linux-gnu/bits/stdlib.h
/usr/include/x86_64-linux-gnu/bits/string_fortified.h
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h
/usr/include/x86_64-linux-gnu/bits/struct_mutex.h
/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h
/usr/include/x86_64-linux-gnu/bits/syscall.h
/usr/include/x86_64-linux-gnu/bits/sysctl.h
/usr/include/x86_64-linux-gnu/bits/syslog-ldbl.h
/usr/include/x86_64-linux-gnu/bits/syslog-path.h
/usr/include/x86_64-linux-gnu/bits/syslog.h
/usr/include/x86_64-linux-gnu/bits/sysmacros.h
/usr/include/x86_64-linux-gnu/bits/termios-baud.h
/usr/include/x86_64-linux-gnu/bits/termios-c_cc.h
/usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h
/usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h
/usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h
/usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h
/usr/include/x86_64-linux-gnu/bits/termios-misc.h
/usr/include/x86_64-linux-gnu/bits/termios-struct.h
/usr/include/x86_64-linux-gnu/bits/termios-tcflow.h
/usr/include/x86_64-linux-gnu/bits/termios.h
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
/usr/include/x86_64-linux-gnu/bits/time.h
/usr/include/x86_64-linux-gnu/bits/time64.h
/usr/include/x86_64-linux-gnu/bits/timerfd.h
/usr/include/x86_64-linux-gnu/bits/timesize.h
/usr/include/x86_64-linux-gnu/bits/timex.h
/usr/include/x86_64-linux-gnu/bits/types.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h
/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
/usr/include/x86_64-linux-gnu/bits/uio-ext.h
/usr/include/x86_64-linux-gnu/bits/uio_lim.h
/usr/include/x86_64-linux-gnu/bits/unistd.h
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h
/usr/include/x86_64-linux-gnu/bits/utmp.h
/usr/include/x86_64-linux-gnu/bits/utmpx.h
/usr/include/x86_64-linux-gnu/bits/utsname.h
/usr/include/x86_64-linux-gnu/bits/waitflags.h
/usr/include/x86_64-linux-gnu/bits/waitstatus.h
/usr/include/x86_64-linux-gnu/bits/wchar-ldbl.h
/usr/include/x86_64-linux-gnu/bits/wchar.h
/usr/include/x86_64-linux-gnu/bits/wchar2.h
/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h
/usr/include/x86_64-linux-gnu/bits/wordsize.h
/usr/include/x86_64-linux-gnu/bits/xopen_lim.h
/usr/include/x86_64-linux-gnu/bits/types/FILE.h
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h
/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
/usr/include/x86_64-linux-gnu/bits/types/error_t.h
/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h
/usr/include/x86_64-linux-gnu/bits/types/res_state.h
/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h
/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h
/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h
/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h
/usr/include/x86_64-linux-gnu/bits/types/stack_t.h
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h
/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h
/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h
/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h
/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h
/usr/include/x86_64-linux-gnu/bits/types/struct_statx.h
/usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
/usr/include/x86_64-linux-gnu/bits/types/time_t.h
/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
/usr/include/x86_64-linux-gnu/bits/types/wint_t.h
/usr/include/x86_64-linux-gnu/gnu/lib-names-64.h
/usr/include/x86_64-linux-gnu/gnu/lib-names.h
/usr/include/x86_64-linux-gnu/gnu/libc-version.h
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
/usr/include/x86_64-linux-gnu/gnu/stubs.h
/usr/include/x86_64-linux-gnu/sys/acct.h
/usr/include/x86_64-linux-gnu/sys/auxv.h
/usr/include/x86_64-linux-gnu/sys/bitypes.h
/usr/include/x86_64-linux-gnu/sys/cdefs.h
/usr/include/x86_64-linux-gnu/sys/debugreg.h
/usr/include/x86_64-linux-gnu/sys/dir.h
/usr/include/x86_64-linux-gnu/sys/elf.h
/usr/include/x86_64-linux-gnu/sys/epoll.h
/usr/include/x86_64-linux-gnu/sys/errno.h
/usr/include/x86_64-linux-gnu/sys/eventfd.h
/usr/include/x86_64-linux-gnu/sys/fanotify.h
/usr/include/x86_64-linux-gnu/sys/fcntl.h
/usr/include/x86_64-linux-gnu/sys/file.h
/usr/include/x86_64-linux-gnu/sys/fsuid.h
/usr/include/x86_64-linux-gnu/sys/gmon.h
/usr/include/x86_64-linux-gnu/sys/gmon_out.h
/usr/include/x86_64-linux-gnu/sys/inotify.h
/usr/include/x86_64-linux-gnu/sys/io.h
/usr/include/x86_64-linux-gnu/sys/ioctl.h
/usr/include/x86_64-linux-gnu/sys/ipc.h
/usr/include/x86_64-linux-gnu/sys/kd.h
/usr/include/x86_64-linux-gnu/sys/klog.h
/usr/include/x86_64-linux-gnu/sys/mman.h
/usr/include/x86_64-linux-gnu/sys/mount.h
/usr/include/x86_64-linux-gnu/sys/msg.h
/usr/include/x86_64-linux-gnu/sys/mtio.h
/usr/include/x86_64-linux-gnu/sys/param.h
/usr/include/x86_64-linux-gnu/sys/pci.h
/usr/include/x86_64-linux-gnu/sys/perm.h
/usr/include/x86_64-linux-gnu/sys/personality.h
/usr/include/x86_64-linux-gnu/sys/poll.h
/usr/include/x86_64-linux-gnu/sys/prctl.h
/usr/include/x86_64-linux-gnu/sys/procfs.h
/usr/include/x86_64-linux-gnu/sys/profil.h
/usr/include/x86_64-linux-gnu/sys/ptrace.h
/usr/include/x86_64-linux-gnu/sys/queue.h
/usr/include/x86_64-linux-gnu/sys/quota.h
/usr/include/x86_64-linux-gnu/sys/random.h
/usr/include/x86_64-linux-gnu/sys/raw.h
/usr/include/x86_64-linux-gnu/sys/reboot.h
/usr/include/x86_64-linux-gnu/sys/reg.h
/usr/include/x86_64-linux-gnu/sys/resource.h
/usr/include/x86_64-linux-gnu/sys/select.h
/usr/include/x86_64-linux-gnu/sys/sem.h
/usr/include/x86_64-linux-gnu/sys/sendfile.h
/usr/include/x86_64-linux-gnu/sys/shm.h
/usr/include/x86_64-linux-gnu/sys/signal.h
/usr/include/x86_64-linux-gnu/sys/signalfd.h
/usr/include/x86_64-linux-gnu/sys/socket.h
/usr/include/x86_64-linux-gnu/sys/socketvar.h
/usr/include/x86_64-linux-gnu/sys/soundcard.h
/usr/include/x86_64-linux-gnu/sys/stat.h
/usr/include/x86_64-linux-gnu/sys/statfs.h
/usr/include/x86_64-linux-gnu/sys/statvfs.h
/usr/include/x86_64-linux-gnu/sys/swap.h
/usr/include/x86_64-linux-gnu/sys/syscall.h
/usr/include/x86_64-linux-gnu/sys/sysctl.h
/usr/include/x86_64-linux-gnu/sys/sysinfo.h
/usr/include/x86_64-linux-gnu/sys/syslog.h
/usr/include/x86_64-linux-gnu/sys/sysmacros.h
/usr/include/x86_64-linux-gnu/sys/termios.h
/usr/include/x86_64-linux-gnu/sys/time.h
/usr/include/x86_64-linux-gnu/sys/timeb.h
/usr/include/x86_64-linux-gnu/sys/timerfd.h
/usr/include/x86_64-linux-gnu/sys/times.h
/usr/include/x86_64-linux-gnu/sys/timex.h
/usr/include/x86_64-linux-gnu/sys/ttychars.h
/usr/include/x86_64-linux-gnu/sys/ttydefaults.h
/usr/include/x86_64-linux-gnu/sys/types.h
/usr/include/x86_64-linux-gnu/sys/ucontext.h
/usr/include/x86_64-linux-gnu/sys/uio.h
/usr/include/x86_64-linux-gnu/sys/un.h
/usr/include/x86_64-linux-gnu/sys/unistd.h
/usr/include/x86_64-linux-gnu/sys/user.h
/usr/include/x86_64-linux-gnu/sys/utsname.h
/usr/include/x86_64-linux-gnu/sys/vfs.h
/usr/include/x86_64-linux-gnu/sys/vlimit.h
/usr/include/x86_64-linux-gnu/sys/vm86.h
/usr/include/x86_64-linux-gnu/sys/vt.h
/usr/include/x86_64-linux-gnu/sys/vtimes.h
/usr/include/x86_64-linux-gnu/sys/wait.h
/usr/include/x86_64-linux-gnu/sys/xattr.h
According to an answer to a similar question on stackexchange linking to the debian wiki the x86-64-linux-gnu folder is for the linux multiarch implementation, ie supporting cross-architecture dependencies.
from debian wiki: "Multiarch is the term being used to refer to the capability of a system to install and run applications of multiple different binary targets on the same system"
There's a more detailed explanation here, from this stackoverflow post.
EDIT: here's an ubuntu wiki post about it, probably more relevant here