Re: kernel build
"François Revol" <[email protected]>
| Newsgroups | gmane.os.openbeos.kernel.devel |
|---|---|
| Message-ID | <9164546413-BeMail@patrick> |
> Gert van Valkenhoef <gertvv-8LkvcxCLB6JmR6Xm/[email protected]> wrote: > > However I still can't build init because of this linker error: > > > > KernelLd objects/x86.R1/kernel/init > > objects/x86.R1/kernel/libroot.so: undefined reference to > > `__errno_location' > [...] > > What could be causing this? > > The "linuxbase" has __errno_location as part of the binary spec; as > it's not part of POSIX or the Unixbase specs, we haven't added it > yet, > although me might do, at least as a temporary measure. > Anyway, adding the following line to src/kernel/libroot/posix/errno.c > should fix your problem: > extern int *(*__errno_location)(void) __attribute__ ((weak, > alias("_errnop"))); > > And a question for everybody: should we add this temporary or even > permanently to errno.c? > We could probably have it only compiled in when building under linux > for now, though. If that is somewhat standardized, why not, the weak alias should get old apps happy anyway. <rant> Now, of course BeOS had a threadsafe errno way before everyone else, but once again we have to abide to other's standards if we want to keep interoperability... that sux. Now, same happens with extended attributes. BFS had them typed and indexed for years, but POSIX came in with their lower API, and if anyone ever wants to support EAs from BeOS in Linux or the other way round it's gonna be awful to map all that. </rant> François. ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl