libroot: Ship empty libpthread.a and libm.a for POSIX and general compatibility.

A few weeks back, I spotted in the Musl FAQ that they apparently ship
empty libm.a and libpthread.a files (https://www.musl-libc.org/faq.html),
which they said was for POSIX compatibility. A bit of digging got me to
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/c99.html which
says:

> It is unspecified whether the libraries libc.a, libl.a, libm.a, libpthread.a,
> librt.a, [OB] [Option Start] libtrace.a, [Option End] libxnet.a, or liby.a
> exist as regular files. The implementation may accept as -l option-arguments
> names of objects that do not exist as regular files.

So to follow the letter of the law, we only need to have the "c99" command
accept these; however, it appears all Linux and BSD cstdlibs accept them
no matter what compliance mode is in effect.

Discussed with PulkoMandy. This will make HaikuPorts' job a lot easier...
This commit is contained in:
Augustin Cavalier
2016-08-13 11:16:06 -04:00
parent 2fd8e2811a
commit 4fecb09f14
4 changed files with 16 additions and 4 deletions
+6 -2
View File
@@ -38,8 +38,12 @@ for lib in [ HaikuImageGetSystemLibs ] $(developmentLibs) {
}
# static libraries
AddFilesToPackage develop lib : libcolumnlistview.a
<$(architecture)>liblocalestub.a <$(architecture)>libshared.a ;
AddFilesToPackage develop lib :
libcolumnlistview.a
<$(architecture)>liblocalestub.a
libm.a
libpthread.a
<$(architecture)>libshared.a ;
# the POSIX error code mapper library
AddFilesToPackage develop lib : libposix_error_mapper.a ;
+5 -2
View File
@@ -33,8 +33,11 @@ for lib in [ HaikuImageGetSystemLibs ] $(developmentLibs) {
}
# static libraries
AddFilesToPackage develop lib $(architecture)
: <$(architecture)>libcolumnlistview.a <$(architecture)>liblocalestub.a
AddFilesToPackage develop lib $(architecture) :
<$(architecture)>libcolumnlistview.a
<$(architecture)>liblocalestub.a
<$(architecture)>libm.a
<$(architecture)>libpthread.a
<$(architecture)>libshared.a ;
# the POSIX error code mapper library