tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Make libffi buildable on alpha



Hi Martin,

Thanks for looking at this (hg on non-run-of-the mill platforms)

On Fri, Dec 26, 2014 at 01:13:32PM +0100, Martin Husemann wrote:
> While trying to run hg on NetBSD/alpha I stumbled into this problem: libffi
> has got the C99 "complex" type added, but apparently the alpha asm glue
> never has been updated.
> 
> This is caught by internal #ifdef/#error checks, so it fails to build.
> 
> The patch below makes it compile again (and at least work as well as it did
> before). Any volunteers to add full support welcome ;-)
> 
> OK to commit?
> 
> Martin

Whilst I'd really, really love to have this in the new pkgsrc-2014Q4
branch, we're in the final stages of making sure the branch builds -
we expect to exit from the freeze on Monday.  So the emphasis right
now is on getting things ready for the branch, and not changing
infrastructure or non-leaf packages.  At the same time, having hg work
properly on the branch for all platforms is something I'd love to see. 

So, I'd like to propose that libffi is left on the branch as it is
right now, and that we change libffi when the branch is cut, and then
have it pulled up to the branch.  That way, we don't invalidate the
results of the bulk builds as they are running now -- although the
Joyent 6 zones can do a bulk build in ...  what was it, 8 hours across
6 zones?, there are platforms like Dragonfly where their bulk builds
take a week :(

How does that sound?

Thanks,
Alistair

> $NetBSD$
> 
> Band-aid update of the alpha asm code to make it compile past the addition
> of type complex. Someone with clue on the alpha ELF ABI should provide
> real support for complex arguments.
> 
> --- src/alpha/osf.S.orig	2014-11-08 13:47:24.000000000 +0100
> +++ src/alpha/osf.S	2014-12-26 13:02:32.000000000 +0100
> @@ -279,6 +279,7 @@ $load_table:
>  	.gprel32 $load_64	# FFI_TYPE_SINT64
>  	.gprel32 $load_none	# FFI_TYPE_STRUCT
>  	.gprel32 $load_64	# FFI_TYPE_POINTER
> +	.gprel32 $load_none	# FFI_TYPE_COMPLEX
>  
>  /* Assert that the table above is in sync with ffi.h.  */
>  
> @@ -294,7 +295,8 @@ $load_table:
>  	|| FFI_TYPE_SINT64 != 12	\
>  	|| FFI_TYPE_STRUCT != 13	\
>  	|| FFI_TYPE_POINTER != 14	\
> -	|| FFI_TYPE_LAST != 14
> +	|| FFI_TYPE_COMPLEX != 15	\
> +	|| FFI_TYPE_LAST != 15
>  #error "osf.S out of sync with ffi.h"
>  #endif
>  



Home | Main Index | Thread Index | Old Index