Previously the old headers were left in include/ leading to spurious compile failures.
This is ugly as it can get (we resort to sneaking -L in for the moment) but
good enough for now. The worst thing which can happen is that we ln these
headers once per invocation of make, nothing more.
If some installation of make(1) complains about the "-L" then wrap it in
ifneq ($(findstring check-symlink,$(.FEATURES)),)
This patch makes libs: rule depend on pregen, that way all generated headers
are available before starting to compile. This makes the build process parallel
safe.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
like
o UCLIBC_HAS_GNU_ERROR
o UCLIBC_HAS_BSD_ERR
o UCLIBC_HAS_PTY
o UCLIBC_HAS_GETPT (1)
o UCLIBC_SYSCALL_STUBS
o UCLIBC_SYSCALL_STUB_WARNING
o UCLIBC_LINUX_SPECIFIC (2)
o UCLIBC_BSD_SPECIFIC (3)
o UCLIBC_NTP_LEGACY (4)
o UCLIBC_SV4_DEPRECATED (5)
o UCLIBC_HAVE_REALTIME (6)
o UCLIBC_HAVE_ADVANCED_REALTIME (7)
o UCLIBC_HAVE_EPOLL (8)
o UCLIBC_HAVE_XATTR (9)
o UCLIBC_HAVE_PROFILING (10)
(1) make non-standard getpt optional and implement standard posix_openpt
(2) fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(),
personality()
ppoll(), setresuid()
(3) mincore(), getdomainname(), setdomainname()
(4) ntp_adjtime(), ntp_gettime() aliases
(5) ustat() [use statfs(2) in your code instead]
(6) All marked as "(REALTIME)" in SUSv3
(7) All marked as "(ADVANCED REALTIME)" in SUSv3
(8) epoll_create(), epoll_ctl(), epoll_wait()
(9) all Extended Attributes
(10) helpers for gcc's -finstrument-functions
- Fixes _dl_exit()
- Implements sleep(3) for !UCLIBC_HAVE_REALTIME
- Implements usleep(3) for !UCLIBC_HAVE_REALTIME
- adds #warning about incorrect posix_fadvise{,64}()
- removes unused and unwanted uselib()
Net outcome is that an allnoconfig with HAVE_SHARED is now about 88k instead
of formerly 130k.
Now it uses dedicated script instead of inline makefile commands,
which helps readability.
It also installs asm[-generic] and linux subdirs from kernel headers
(previously it had to be done separately).
Lastly, it passes each uclibc header thru unifdef, which strips
#ifdef UCLIBC_INTERNAL conditional from headers.
Currently it's a no-op (no such #ifders in tree).
The plan is to have libc_hidden_proto(foo) migrated to headers
and guard them by these #ifdefs.
via system(). Also move it to extra/scripts since it's a uClibc
build script, not part of upstream kconfig. Adjust the "grabbing a new
kconfig snapshot" procedure accordingly.