John-Mark Gurney wrote:
[..]
> might as well say goodbye to ever getting freebsd's userland running
> under NetBSD which is how our nice Alpha port got started...  this
> NEEDS to be fixed...

NetBSD have just done exactly the same sort of thing.  And for that matter
it makes no difference for that sort of thing as we used a different syscall
set explicitly in that case.

The only "problem" is that -current libc is tightly bound to the -current
kernel.

How about this as a cheap and robust "solution":
- when building libc, have an option that allows sigaction etc to be
*wrappers* that emulate their functionality through osigaction().  This
means dropping sigaction etc from the assembler function list and use some
C stubs instead.  Call this (say) -DANCIENTTOOLS for the Makefiles.
The objective would be to try not to generate a binary that requires syscalls
that are not present on something like 2.2.x.
- -DANCIENTTOOLS would be both a make define and a C define, so makefiles
  could use .if defined(ANCIENTTOOLS) ... to disable new stuff and C code
  could use #ifdef ANCIENTTOOLS or #ifndef etc.  This would mean it would be
  a lot easier to build make(1) as well since it could avoid using stuff
  that is only in the latest systems.
- this could be used on other libraries (eg: consumers of issetugid())
- what this buys us is we can build the static libraries and build tools with
  -DANCIENTTOOLS and they'll run on anything from 2.2 onwards.
- this can also be used to do some workarounds for old gcc's etc for the build
  tools too.
- this enables us to build the /usr/obj/tmp tree hosted for >= 2.2.x but
  they are -current tools for compiling the *rest* of the system including
  the real build tools.

I think this would solve a lot of chicken/egg problems and would solve the
signal syscall issue thing completely.

So far we've been lucky.  None of the 40-50 odd new syscalls we've added
over the last few years have been used in building the tree, so folks have
had it easy for a while.  Marcel has done *nothing* wrong.  This was bound
to blow up sooner or later when we added a new syscall that was used during
the build.

So how about folks get off Marcel's back and stop running around like it's
the end of the world and lets do a proper workaround.  Rest assured, this
will be resolved with a workaround of some sort or other and will be a
4.0-RELEASE requirement that 3.x-stable can do a source upgrade to 4.0.

Cheers,
-Peter




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to