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:
@@ -38,8 +38,12 @@ for lib in [ HaikuImageGetSystemLibs ] $(developmentLibs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# static libraries
|
# static libraries
|
||||||
AddFilesToPackage develop lib : libcolumnlistview.a
|
AddFilesToPackage develop lib :
|
||||||
<$(architecture)>liblocalestub.a <$(architecture)>libshared.a ;
|
libcolumnlistview.a
|
||||||
|
<$(architecture)>liblocalestub.a
|
||||||
|
libm.a
|
||||||
|
libpthread.a
|
||||||
|
<$(architecture)>libshared.a ;
|
||||||
|
|
||||||
# the POSIX error code mapper library
|
# the POSIX error code mapper library
|
||||||
AddFilesToPackage develop lib : libposix_error_mapper.a ;
|
AddFilesToPackage develop lib : libposix_error_mapper.a ;
|
||||||
|
|||||||
@@ -33,8 +33,11 @@ for lib in [ HaikuImageGetSystemLibs ] $(developmentLibs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# static libraries
|
# static libraries
|
||||||
AddFilesToPackage develop lib $(architecture)
|
AddFilesToPackage develop lib $(architecture) :
|
||||||
: <$(architecture)>libcolumnlistview.a <$(architecture)>liblocalestub.a
|
<$(architecture)>libcolumnlistview.a
|
||||||
|
<$(architecture)>liblocalestub.a
|
||||||
|
<$(architecture)>libm.a
|
||||||
|
<$(architecture)>libpthread.a
|
||||||
<$(architecture)>libshared.a ;
|
<$(architecture)>libshared.a ;
|
||||||
|
|
||||||
# the POSIX error code mapper library
|
# the POSIX error code mapper library
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ for architectureObject in [ MultiArchSubDirSetup ] {
|
|||||||
[ TargetStaticLibsupc++ ]
|
[ TargetStaticLibsupc++ ]
|
||||||
[ TargetLibgcc ]
|
[ TargetLibgcc ]
|
||||||
;
|
;
|
||||||
|
|
||||||
|
StaticLibrary [ MultiArchDefaultGristFiles libm.a ] : empty.c ;
|
||||||
|
StaticLibrary [ MultiArchDefaultGristFiles libpthread.a ] : empty.c ;
|
||||||
|
|
||||||
# Copy libroot.so and update the copy's revision section. We link
|
# Copy libroot.so and update the copy's revision section. We link
|
||||||
# everything against the original, but the copy will end up on the disk
|
# everything against the original, but the copy will end up on the disk
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
/* This file left intentionally empty, and is only here to get Jam to generate
|
||||||
|
* an actual static library. */
|
||||||
Reference in New Issue
Block a user