The package rpms/bigloo.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/bigloo.git/commit/?id=3e2c3d9ce513df....
Change: +%ifarch aarch64 ppc64 ppc64le
Thanks.
Full change: ============
commit 3e2c3d9ce513df35635554de7ed5a733d4f914ae Author: Jerry James loganjerry@gmail.com Date: Wed Jan 30 20:16:59 2019 -0700
Update to 4.3e.
Also: - Build with custom GC for performance reasons. - Add -return, -memread, and -params patches to fix runtime issues. - Add -test patch to make %check exit on test failure (bz 1663605). - Unlimit stack usage in the check script for s390x.
diff --git a/bigloo-callcc.patch b/bigloo-callcc.patch new file mode 100644 index 0000000..fe1e62b --- /dev/null +++ b/bigloo-callcc.patch @@ -0,0 +1,11 @@ +--- runtime/Clib/callcc.c.orig 2018-12-18 16:52:51.177402754 -0700 ++++ runtime/Clib/callcc.c 2019-01-19 09:18:23.532808135 -0700 +@@ -264,7 +264,7 @@ call_cc( obj_t proc ) { + flush_regs_in_stack(); + + /* on recupere l'adresse du sommet de pile */ +- stack_top = (char *)bgl_get_top_of_stack(); ++ stack_top = (char *)((unsigned long)bgl_get_top_of_stack() & 0xFFFFFFFFFFFFFC00UL); + + /* on calcule la taille de la pile, en prevoyant que le GC peut */ + /* flusher les registres dans la pile (REGISTER_SAVE_BUFFER) */ diff --git a/bigloo-endian.patch b/bigloo-endian.patch deleted file mode 100644 index 951465b..0000000 --- a/bigloo-endian.patch +++ /dev/null @@ -1,303 +0,0 @@ ---- api/gstreamer/src/Clib/bglgst.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ api/gstreamer/src/Clib/bglgst.c 2017-08-17 20:11:16.869429995 -0600 -@@ -1053,7 +1053,7 @@ bgl_gsttag_value_to_obj( const GstTagLis - GDate *date; - - if( gst_tag_list_get_date( list, tag, &date ) ) -- return bgl_make_date( 1, 1, 1, -+ return bgl_make_date( 0, 1, 1, 1, - date->day, date->month, date->year, - 0, 0, 0 ); - else ---- bde/bmem/lib/alloc.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ bde/bmem/lib/alloc.c 2017-08-17 21:40:37.460948521 -0600 -@@ -758,7 +758,7 @@ obj_t ident proto { \ - WRAPPER( string_to_bstring_len, STRING_TYPE_NUM, (char *s, int l), (s ,l) ) - WRAPPER( string_to_bstring, STRING_TYPE_NUM, (char *s), (s) ) - WRAPPER( make_string, STRING_TYPE_NUM, (int l, char c), (l,c) ) --WRAPPER( make_string_sans_fill, STRING_TYPE_NUM, (int l), (l) ) -+WRAPPER( make_string_sans_fill, STRING_TYPE_NUM, (long l), (l) ) - WRAPPER( string_append, STRING_TYPE_NUM, (void *s1, void *s2), (s1, s2) ) - WRAPPER( string_append_3, STRING_TYPE_NUM, (void *s1, void *s2, void *s3), (s1, s2, s3) ) - WRAPPER( c_substring, STRING_TYPE_NUM, (void *s, int l1, int l2), (s, l1, l2) ) -@@ -812,7 +812,7 @@ WRAPPER( bgl_host, HOSTENT_TYPE_NUM, (ob - /* date */ - WRAPPER( bgl_seconds_to_date, DATE_TYPE_NUM, (long s), (s) ) - WRAPPER( bgl_nanoseconds_to_date, DATE_TYPE_NUM, (long s), (s) ) --WRAPPER( bgl_make_date, DATE_TYPE_NUM, (int s, int m, int hr, int mday, int mon, int year, long tz, bool_t istz, int isdst), (s, m, hr, mday, mon, year, tz, istz, isdst) ) -+WRAPPER( bgl_make_date, DATE_TYPE_NUM, (BGL_LONGLONG_T ns, int s, int m, int hr, int mday, int mon, int year, long tz, bool_t istz, int isdst), (ns, s, m, hr, mday, mon, year, tz, istz, isdst) ) - WRAPPER( bgl_seconds_format, STRING_TYPE_NUM, (long s, obj_t f), (s, f) ) - - /* dynamic environment */ ---- bde/bmem/lib/bmem.h.orig 2017-04-18 01:33:52.000000000 -0600 -+++ bde/bmem/lib/bmem.h 2017-08-17 20:10:11.444600428 -0600 -@@ -97,7 +97,7 @@ extern void (*____bgl_init_objects)(); - extern void *(*____string_to_bstring)( char * ); - extern void *(*____string_to_bstring_len)( char *, int ); - extern void *(*____make_string)( int, char ); --extern void *(*____make_string_sans_fill)( int ); -+extern void *(*____make_string_sans_fill)( long ); - extern void *(*____string_append)( void *, void * ); - extern void *(*____string_append_3)( void *, void *, void * ); - extern void *(*____c_substring)( void *, int, int ); -@@ -153,7 +153,7 @@ extern void *(*____bgl_host )( void * ); - - extern void *(*____bgl_seconds_to_date )( long ); - extern void *(*____bgl_nanoseconds_to_date )( long ); --extern void *(*____bgl_make_date )( int, int, int, int, int, int, long, int, int ); -+extern void *(*____bgl_make_date )( BGL_LONGLONG_T, int, int, int, int, int, int, long, bool_t, int ); - extern void *(*____bgl_seconds_format )( long, void * ); - - extern void *(*____scheduler_start)( void * ); ---- bde/bmem/lib/init.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ bde/bmem/lib/init.c 2017-08-17 20:09:43.116674223 -0600 -@@ -63,7 +63,7 @@ void *(*____make_bllong)( BGL_LONGLONG_T - void *(*____string_to_bstring)( char * ) = 0; - void *(*____string_to_bstring_len)( char *, int ) = 0; - void *(*____make_string)( int, char ) = 0; --void *(*____make_string_sans_fill)( int ) = 0; -+void *(*____make_string_sans_fill)( long ) = 0; - void *(*____string_append)( void *, void * ) = 0; - void *(*____string_append_3)( void *, void *, void * ) = 0; - void *(*____c_substring)( void *, int, int ) = 0; -@@ -138,7 +138,7 @@ void *bgl_socket_accept_symbol, *bgl_soc - /* date */ - void *(*____bgl_seconds_to_date )( long ); - void *(*____bgl_nanoseconds_to_date )( long ); --void *(*____bgl_make_date )( int, int, int, int, int, int, long, bool_t, int ); -+void *(*____bgl_make_date )( BGL_LONGLONG_T, int, int, int, int, int, int, long, bool_t, int ); - void *(*____bgl_seconds_format )( long, void * ); - - /* classes */ -@@ -421,7 +421,7 @@ bmem_init_inner() { - /* date */ - ____bgl_seconds_to_date = (void *(*)( long ))get_function( hdl, "bgl_seconds_to_date" ); - ____bgl_nanoseconds_to_date = (void *(*)( long ))get_function( hdl, "bgl_nanoseconds_to_date" ); -- ____bgl_make_date = (void *(*)( int, int, int, int, int, int, long, bool_t, int ))get_function( hdl, "bgl_make_date" ); -+ ____bgl_make_date = (void *(*)( BGL_LONGLONG_T, int, int, int, int, int, int, long, bool_t, int ))get_function( hdl, "bgl_make_date" ); - ____bgl_seconds_format = (void *(*)( long, void * ))get_function( hdl, "bgl_seconds_format" ); - - /* class */ ---- runtime/Clib/callcc.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/callcc.c 2017-08-16 20:17:27.973583422 -0600 -@@ -24,7 +24,7 @@ extern int flush_regs_in_stack(); - /*---------------------------------------------------------------------*/ - extern long glob_dummy; - --extern obj_t make_fx_procedure(); -+extern obj_t make_fx_procedure( obj_t (*)(), int, int ); - extern obj_t c_constant_string_to_string( char * ); - - static obj_t callcc_restore_stack(); ---- runtime/Clib/cbinary.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/cbinary.c 2017-08-16 20:22:27.612760838 -0600 -@@ -50,8 +50,8 @@ - extern obj_t obj_to_string( obj_t, obj_t ); - extern obj_t string_to_obj( obj_t, obj_t, obj_t ); - extern obj_t c_constant_string_to_string( char * ); --extern obj_t make_string_sans_fill( int ); --extern obj_t bgl_string_shrink(); -+extern obj_t make_string_sans_fill( long ); -+extern obj_t bgl_string_shrink(obj_t, long); - - /*---------------------------------------------------------------------*/ - /* obj_t */ ---- runtime/Clib/ccontrol.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/ccontrol.c 2017-08-17 18:00:48.466680487 -0600 -@@ -13,7 +13,7 @@ - /*---------------------------------------------------------------------*/ - /* External definitions. */ - /*---------------------------------------------------------------------*/ --extern obj_t make_string_sans_fill( int ); -+extern obj_t make_string_sans_fill( long ); - - /*---------------------------------------------------------------------*/ - /* obj_t */ ---- runtime/Clib/cports.c.orig 2017-04-18 07:58:03.442793433 -0600 -+++ runtime/Clib/cports.c 2017-08-17 18:00:21.020753088 -0600 -@@ -211,7 +211,7 @@ BGL_RUNTIME_DEF long default_io_bufsiz; - /*---------------------------------------------------------------------*/ - BGL_RUNTIME_DECL obj_t bgl_make_input_port( obj_t, FILE *, obj_t, obj_t ); - extern obj_t make_string( int, unsigned char ); --extern obj_t make_string_sans_fill( int ); -+extern obj_t make_string_sans_fill( long ); - - /*---------------------------------------------------------------------*/ - /* Prototypes */ ---- runtime/Clib/cprocess.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/cprocess.c 2017-08-16 19:48:22.018342783 -0600 -@@ -58,7 +58,7 @@ extern long bgl_list_length( obj_t ); - extern char *bgl_string_to_gc_cstring( obj_t ); - extern obj_t string_to_bstring( char * ); - extern ssize_t bgl_syswrite( obj_t, char *, size_t ); --extern obj_t make_string_sans_fill( int ); -+extern obj_t make_string_sans_fill( long ); - - /*---------------------------------------------------------------------*/ - /* Prototypes */ ---- runtime/Clib/crgc.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/crgc.c 2017-08-16 19:47:29.602478903 -0600 -@@ -52,7 +52,7 @@ - extern obj_t bigloo_case_sensitive; - extern obj_t bgl_string_to_keyword_len( char *, long ); - extern obj_t bgl_string_to_symbol_len( char *, long ); --extern obj_t make_string_sans_fill( int ); -+extern obj_t make_string_sans_fill( long ); - extern obj_t string_to_bstring_len( char *, int ); - extern int bgl_debug(); - extern obj_t bgl_escape_C_string( unsigned char *, long, long ); ---- runtime/Clib/csocket.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/csocket.c 2017-08-16 19:47:05.555541352 -0600 -@@ -151,7 +151,7 @@ extern bool_t bigloo_strcmp( obj_t o1, o - extern bool_t bgl_dns_enable_cache(); - extern long bgl_dns_cache_validity_timeout(); - extern ssize_t bgl_syswrite( obj_t, char *, size_t ); --extern obj_t make_string_sans_fill( int ); -+extern obj_t make_string_sans_fill( long ); - - #ifndef _BGL_WIN32_VER - extern int dup( int ); ---- runtime/Clib/cstring.c.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Clib/cstring.c 2017-08-16 19:15:09.183034824 -0600 -@@ -98,7 +98,7 @@ make_string( int len, unsigned char c ) - /*---------------------------------------------------------------------*/ - BGL_RUNTIME_DEF - obj_t --make_string_sans_fill( int len ) { -+make_string_sans_fill( long len ) { - obj_t string = GC_MALLOC_ATOMIC( STRING_SIZE + len ); - - #if( !defined( TAG_STRING ) ) ---- runtime/Ieee/port.scm.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Ieee/port.scm 2017-08-17 17:56:18.284355211 -0600 -@@ -117,7 +117,7 @@ - "BGL_INPUT_PORT_LENGTH_SET") - (macro c-input-port-last-token-position::elong (::input-port) - "INPUT_PORT_TOKENPOS") -- (macro c-input-port-bufsiz::int (::input-port) -+ (macro c-input-port-bufsiz::long (::input-port) - "BGL_INPUT_PORT_BUFSIZ") - (macro c-closed-input-port?::bool (::obj) - "INPUT_PORT_CLOSEP") -@@ -130,7 +130,7 @@ - - ($close-output-port::obj (::output-port) "bgl_close_output_port") - (c-get-output-string::bstring (::output-port)"get_output_string") -- (c-default-io-bufsiz::int "default_io_bufsiz") -+ (c-default-io-bufsiz::long "default_io_bufsiz") - (c-reset-eof::bool (::obj) "reset_eof") - (macro c-flush-output-port::obj (::output-port) - "bgl_flush_output_port") -@@ -272,7 +272,7 @@ - "bgl_input_port_seek") - (method static c-set-output-port-position!::obj (::output-port ::long) - "bgl_output_port_seek") -- (method static c-input-port-bufsiz::int (::input-port) -+ (method static c-input-port-bufsiz::long (::input-port) - "bgl_input_port_bufsiz") - - (method static c-closed-input-port?::bool (::input-port) ---- runtime/Include/bigloo.h.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Include/bigloo.h 2017-08-16 19:20:31.534244922 -0600 -@@ -2613,7 +2613,7 @@ BGL_RUNTIME_DECL obj_t bgl_display_char( - BGL_RUNTIME_DECL obj_t bgl_flush_output_port( obj_t ); - BGL_RUNTIME_DECL obj_t bgl_write( obj_t, unsigned char *, size_t ); - --BGL_RUNTIME_DECL obj_t bgl_make_date(); -+BGL_RUNTIME_DECL obj_t bgl_make_date( BGL_LONGLONG_T, int, int, int, int, int, int, long, bool_t, int ); - - BGL_RUNTIME_DECL obj_t bgl_make_condvar( obj_t ); - BGL_RUNTIME_DECL obj_t bgl_make_mutex( obj_t ); -@@ -2640,7 +2640,7 @@ BGL_RUNTIME_DECL obj_t bgl_make_class( o - obj_t, obj_t, obj_t, obj_t, obj_t, - long, obj_t ); - --BGL_RUNTIME_DECL obj_t bgl_getgroups(); -+BGL_RUNTIME_DECL obj_t bgl_getgroups( void ); - - #if !HAVE_MMAP - BGL_RUNTIME_DECL unsigned char bgl_mmap_nommap_ref( obj_t, long ); -@@ -2668,7 +2668,7 @@ BGL_RUNTIME_DECL obj_t bgl_make_server_s - BGL_RUNTIME_DECL obj_t bgl_socket_accept( obj_t, bool_t, obj_t, obj_t ); - BGL_RUNTIME_DECL long bgl_socket_accept_many( obj_t, bool_t, obj_t, obj_t, obj_t ); - --BGL_RUNTIME_DECL obj_t bgl_gethostname(); -+BGL_RUNTIME_DECL obj_t bgl_gethostname( void ); - BGL_RUNTIME_DECL obj_t bgl_socket_hostname( obj_t ); - BGL_RUNTIME_DECL obj_t bgl_datagram_socket_hostname( obj_t ); - BGL_RUNTIME_DECL obj_t bgl_getsockopt( obj_t, obj_t ); -@@ -2684,7 +2684,7 @@ BGL_RUNTIME_DECL obj_t bgl_regcomp( obj_ - BGL_RUNTIME_DECL obj_t bgl_regfree( obj_t ); - BGL_RUNTIME_DECL obj_t bgl_regmatch( obj_t, char *, bool_t, int, int ); - --BGL_RUNTIME_DECL void bgl_restore_signal_handlers(); -+BGL_RUNTIME_DECL void bgl_restore_signal_handlers( void ); - extern void bps_bassign(obj_t *field, obj_t value, obj_t obj); - extern void bps_bmassign(obj_t *field, obj_t value); - ---- runtime/Include/bigloo_string.h.orig 2017-04-18 01:33:52.000000000 -0600 -+++ runtime/Include/bigloo_string.h 2017-08-16 19:13:56.990231034 -0600 -@@ -24,7 +24,7 @@ extern "C" { - /*---------------------------------------------------------------------*/ - /* extern */ - /*---------------------------------------------------------------------*/ --BGL_RUNTIME_DECL obj_t make_string_sans_fill(); -+BGL_RUNTIME_DECL obj_t make_string_sans_fill( long ); - BGL_RUNTIME_DECL obj_t string_to_bstring( char * ); - BGL_RUNTIME_DECL obj_t string_to_bstring_len( char *, int ); - BGL_RUNTIME_DECL obj_t close_init_string(); ---- runtime/objs/obj_s/Ieee/input.c.orig 2017-04-18 01:34:28.000000000 -0600 -+++ runtime/objs/obj_s/Ieee/input.c 2017-08-17 17:55:53.445404901 -0600 -@@ -189,7 +189,7 @@ extern int rgc_buffer_unget_char(obj_t, - static obj_t BGl_list4817z00zz__r4_input_6_10_2z00 = BUNSPEC; - static obj_t BGl_z62portzd2ze3stringzd2listz81zz__r4_input_6_10_2z00(obj_t, obj_t); - BGL_EXPORTED_DECL obj_t BGl_readzd2charszd2zz__r4_input_6_10_2z00(obj_t, obj_t); --extern int default_io_bufsiz; -+extern long default_io_bufsiz; - BGL_EXPORTED_DECL obj_t BGl_readzd2charsz12zc0zz__r4_input_6_10_2z00(obj_t, obj_t, obj_t); - extern obj_t BGl_bigloozd2typezd2errorz00zz__errorz00(obj_t, obj_t, obj_t); - static obj_t BGl_z62filezd2ze3stringz53zz__r4_input_6_10_2z00(obj_t, obj_t); ---- runtime/objs/obj_s/Ieee/port.c.orig 2017-04-18 01:34:27.000000000 -0600 -+++ runtime/objs/obj_s/Ieee/port.c 2017-08-17 17:56:04.311383514 -0600 -@@ -341,7 +341,7 @@ static obj_t BGl_z62inputzd2portzd2fillz - static obj_t BGl_z62outputzd2stringzd2portzf3z91zz__r4_ports_6_10_1z00(obj_t, obj_t); - static obj_t BGl_z62withzd2outputzd2tozd2stringzb0zz__r4_ports_6_10_1z00(obj_t, obj_t); - static obj_t BGl_z62currentzd2outputzd2portz62zz__r4_ports_6_10_1z00(obj_t); --extern int default_io_bufsiz; -+extern long default_io_bufsiz; - BGL_EXPORTED_DECL obj_t BGl_openzd2inputzd2czd2stringzd2zz__r4_ports_6_10_1z00(char *); - static obj_t BGl_z62setzd2inputzd2portzd2positionz12za2zz__r4_ports_6_10_1z00(obj_t, obj_t, obj_t); - BGL_EXPORTED_DECL obj_t BGl_openzd2outputzd2procedurez00zz__r4_ports_6_10_1z00(obj_t, obj_t, obj_t, obj_t); ---- runtime/objs/obj_u/Ieee/input.c.orig 2017-04-18 01:34:17.000000000 -0600 -+++ runtime/objs/obj_u/Ieee/input.c 2017-08-17 17:55:17.648475358 -0600 -@@ -183,7 +183,7 @@ extern "C" - obj_t); - BGL_EXPORTED_DECL obj_t BGl_readzd2charszd2zz__r4_input_6_10_2z00(obj_t, - obj_t); -- extern int default_io_bufsiz; -+ extern long default_io_bufsiz; - BGL_EXPORTED_DECL obj_t BGl_readzd2charsz12zc0zz__r4_input_6_10_2z00(obj_t, - obj_t, obj_t); - extern obj_t BGl_bigloozd2typezd2errorz00zz__errorz00(obj_t, obj_t, obj_t); ---- runtime/objs/obj_u/Ieee/port.c.orig 2017-04-18 01:34:16.000000000 -0600 -+++ runtime/objs/obj_u/Ieee/port.c 2017-08-17 17:55:34.920441363 -0600 -@@ -557,7 +557,7 @@ extern "C" - static obj_t - BGl_z62withzd2outputzd2tozd2stringzb0zz__r4_ports_6_10_1z00(obj_t, obj_t); - static obj_t BGl_keyword2396z00zz__r4_ports_6_10_1z00 = BUNSPEC; -- extern int default_io_bufsiz; -+ extern long default_io_bufsiz; - BGL_EXPORTED_DECL obj_t - BGl_openzd2outputzd2procedurez00zz__r4_ports_6_10_1z00(obj_t, obj_t, obj_t, - obj_t); ---- runtime/objs/obj_u/Unsafe/gunzip.c.orig 2017-04-18 01:34:10.000000000 -0600 -+++ runtime/objs/obj_u/Unsafe/gunzip.c 2017-08-17 17:54:54.949520035 -0600 -@@ -214,7 +214,7 @@ extern "C" - obj_t, obj_t, long, obj_t, long, obj_t, obj_t, long, obj_t, obj_t, obj_t, - obj_t, obj_t); - extern obj_t BGl_readzd2charszd2zz__r4_input_6_10_2z00(obj_t, obj_t); -- extern int default_io_bufsiz; -+ extern long default_io_bufsiz; - extern obj_t BGl_readzd2charsz12zc0zz__r4_input_6_10_2z00(obj_t, obj_t, - obj_t); - extern bool_t BGl_za7erozf3z54zz__r4_numbers_6_5z00(obj_t); diff --git a/bigloo-format.patch b/bigloo-format.patch index 642c9fa..8362471 100644 --- a/bigloo-format.patch +++ b/bigloo-format.patch @@ -1,5 +1,5 @@ ---- api/avahi/src/Clib/bglavahi.c.orig 2018-01-26 02:50:10.000000000 -0700 -+++ api/avahi/src/Clib/bglavahi.c 2018-01-26 21:23:03.713356639 -0700 +--- api/avahi/src/Clib/bglavahi.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ api/avahi/src/Clib/bglavahi.c 2018-12-18 16:51:27.563649530 -0700 @@ -482,7 +482,7 @@ AvahiStringList * bgl_avahi_list_to_string_list( obj_t p ) { // MS: 28 feb 2017 @@ -9,14 +9,14 @@
while( PAIRP( p ) ) { l = avahi_string_list_add( l, BSTRING_TO_STRING( CAR( p ) ) ); ---- comptime/Cc/exec.c.orig 2018-01-26 02:50:51.000000000 -0700 -+++ comptime/Cc/exec.c 2018-01-26 21:23:03.714356635 -0700 +--- comptime/Cc/exec.c.orig 2018-12-18 06:26:34.000000000 -0700 ++++ comptime/Cc/exec.c 2018-12-18 16:51:27.564649527 -0700 @@ -342,7 +342,7 @@ extern "C" BSTRING_TO_STRING(BGl_za2shellza2z00zzengine_paramz00); - BgL_arg1033z00_37 = + BgL_arg1030z00_37 = execl(BgL_tmpz00_118, BgL_auxz00_120, BgL_auxz00_122, - BgL_auxz00_124, 0L); + BgL_auxz00_124, NULL); } - bgl_display_obj(BINT(BgL_arg1033z00_37), BgL_port1017z00_36); + bgl_display_obj(BINT(BgL_arg1030z00_37), BgL_port1016z00_36); } diff --git a/bigloo-memread.patch b/bigloo-memread.patch new file mode 100644 index 0000000..4aab67d --- /dev/null +++ b/bigloo-memread.patch @@ -0,0 +1,39 @@ +--- runtime/Clib/csocket.c.orig 2018-12-18 16:52:09.914524595 -0700 ++++ runtime/Clib/csocket.c 2018-12-18 16:52:39.254438046 -0700 +@@ -1703,8 +1703,8 @@ bgl_socket_localp( obj_t sock ) { + if( SOCKET( sock ).stype == BGL_SOCKET_SERVER ) { + return 0; + } else { +- struct sockaddr_in sin; +- int len = sizeof( sin ); ++ struct sockaddr_storage sstor; ++ int len = sizeof( sstor ); + + if( getsockname( SOCKET( sock ).fd, + (struct sockaddr *)&sin, +@@ -1718,12 +1718,14 @@ bgl_socket_localp( obj_t sock ) { + socket_error( "socket-localp", buffer, sock ); + } else if( SOCKET( sock ).family == AF_INET ) { + /* ipv4 addr */ +- return sin.sin_addr.s_addr == SOCKET( sock ).address.in_addr.s_addr; ++ struct sockaddr_in *sin = (struct sockaddr_in *)(void *)&sstor; ++ return sin->sin_addr.s_addr == SOCKET( sock ).address.in_addr.s_addr; + } else { + /* ipv6 addr */ + /* MS: 17nov2014 don't know how to implement this */ ++ struct sockaddr_in6 *sin = (struct sockaddr_in6 *)(void *)&sstor; + fprintf( stderr, "(%s:%d) IPV6 UNTESTED\n", __FILE__, __LINE__ ); +- return memcmp( (char *)&(((struct sockaddr_in6 *)( &sin ))->sin6_addr), ++ return memcmp( (char *)&(sin->sin6_addr), + (char *)&(SOCKET( sock ).address.in6_addr), + sizeof( (SOCKET( sock ).address.in6_addr) ) ); + } +@@ -2632,7 +2634,7 @@ bgl_make_datagram_server_socket( int por + int s; + struct addrinfo hints, *servinfo, *p; + int rv; +- char service[ 10 ]; ++ char service[ 12 ]; + obj_t sock, buf, inb, iport; + FILE *fs; + diff --git a/bigloo-noreturn.patch b/bigloo-noreturn.patch index 669da35..ed640ad 100644 --- a/bigloo-noreturn.patch +++ b/bigloo-noreturn.patch @@ -1,5 +1,5 @@ ---- runtime/Clib/capply.c.orig 2018-02-04 23:59:28.000000000 -0700 -+++ runtime/Clib/capply.c 2018-02-06 21:33:57.993891387 -0700 +--- runtime/Clib/capply.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/capply.c 2018-12-18 16:52:09.912524601 -0700 @@ -13,7 +13,7 @@ /*---------------------------------------------------------------------*/ /* Les recuperations externes */ @@ -9,8 +9,8 @@ extern long bgl_list_length( obj_t );
/*---------------------------------------------------------------------*/ ---- runtime/Clib/cmain.c.orig 2018-02-04 23:59:28.000000000 -0700 -+++ runtime/Clib/cmain.c 2018-02-06 21:34:17.066831885 -0700 +--- runtime/Clib/cmain.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/cmain.c 2018-12-18 16:52:09.913524598 -0700 @@ -40,7 +40,7 @@ extern void cref(); extern void memshow(); extern void bgl_init_eval_cnst(); @@ -20,9 +20,29 @@ extern void bgl_init_objects(); extern obj_t bigloo_exit_apply( obj_t ); extern void *bgl_callcc_get_top_of_stack( void * ); ---- runtime/Include/bigloo.h.orig 2018-02-04 23:59:28.000000000 -0700 -+++ runtime/Include/bigloo.h 2018-02-06 21:32:06.924237894 -0700 -@@ -2270,7 +2270,7 @@ struct befored { +--- runtime/Clib/csocket.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/csocket.c 2018-12-18 16:52:09.914524595 -0700 +@@ -254,7 +254,7 @@ bgl_init_socket() { + /* static void */ + /* socket_error ... */ + /*---------------------------------------------------------------------*/ +-static void ++static void __attribute__((noreturn)) + socket_error( const char *who, const char *message, obj_t object ) { + C_SYSTEM_FAILURE( BGL_IO_ERROR, (char *)who, (char *)message, object ); + } +@@ -263,7 +263,7 @@ socket_error( const char *who, const cha + /* static void */ + /* socket_timeout_error ... */ + /*---------------------------------------------------------------------*/ +-static void ++static void __attribute__((noreturn)) + socket_timeout_error( obj_t hostname, int port ) { + char buffer[ 512 ]; + +--- runtime/Include/bigloo.h.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Include/bigloo.h 2018-12-18 16:52:09.915524592 -0700 +@@ -2277,7 +2277,7 @@ BGL_RUNTIME_DECL obj_t (*bgl_multithread /*---------------------------------------------------------------------*/ /* The external declarations */ /*---------------------------------------------------------------------*/ diff --git a/bigloo-params.patch b/bigloo-params.patch new file mode 100644 index 0000000..97f15da --- /dev/null +++ b/bigloo-params.patch @@ -0,0 +1,108 @@ +--- runtime/Clib/callcc.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/callcc.c 2018-12-18 16:52:51.177402754 -0700 +@@ -27,7 +27,7 @@ extern long glob_dummy; + extern obj_t make_fx_procedure( obj_t (*)(), int, int ); + extern obj_t c_constant_string_to_string( char * ); + +-static obj_t callcc_restore_stack(); ++static obj_t callcc_restore_stack( obj_t, obj_t, char ** ); + extern obj_t unwind_stack_until( struct exitd *, obj_t, obj_t, obj_t ); + extern bool_t unwind_stack_value_p( obj_t ); + extern void *bgl_get_top_of_stack(); +--- runtime/Clib/cerror.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/cerror.c 2018-12-18 16:52:51.178402751 -0700 +@@ -23,9 +23,8 @@ extern int errno; + /* Les recuperations externes */ + /*---------------------------------------------------------------------*/ + #ifndef _MSC_VER +-extern void perror(); +-extern char *strerror( int ); +-extern void exit( int ); ++#include <stdio.h> ++#include <stdlib.h> + #endif + extern obj_t bgl_typeof( obj_t ); + +--- runtime/Clib/cinit_obj.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/cinit_obj.c 2018-12-18 16:52:51.179402747 -0700 +@@ -43,7 +43,7 @@ BGL_RUNTIME_DEF union nanobj bigloo_nan, + /*---------------------------------------------------------------------*/ + /* Importations */ + /*---------------------------------------------------------------------*/ +-extern obj_t string_to_obj(); ++extern obj_t string_to_obj(obj_t, obj_t, obj_t); + extern void bgl_init_dynamic_env(); + extern void bgl_init_symbol_table(); + extern void bgl_init_socket(); +--- runtime/Clib/cmain.c.orig 2018-12-18 16:52:25.221479441 -0700 ++++ runtime/Clib/cmain.c 2018-12-18 16:52:51.179402747 -0700 +@@ -36,8 +36,8 @@ BGL_RUNTIME_DEF long heap_size = DEFAULT + /*---------------------------------------------------------------------*/ + /* Des recuperations externes */ + /*---------------------------------------------------------------------*/ +-extern void cref(); +-extern void memshow(); ++extern obj_t cref(obj_t); ++extern void memshow( char *, char *, long ); + extern void bgl_init_eval_cnst(); + extern obj_t c_constant_string_to_string( char * ); + extern void c_error( char *, char *, int ) __attribute__((noreturn)); +@@ -48,7 +48,7 @@ extern void bgl_end_io(); + extern void GC_set_all_interior_pointers( int ); + + #ifndef _MSC_VER +-extern char *getenv(); ++#include <stdlib.h> + #endif + + /*---------------------------------------------------------------------*/ +--- runtime/Clib/cports.c.orig 2018-12-18 16:52:25.222479438 -0700 ++++ runtime/Clib/cports.c 2018-12-18 16:52:51.179402747 -0700 +@@ -113,7 +113,7 @@ + /*---------------------------------------------------------------------*/ + #if( BGL_HAVE_SENDFILE ) + # if( BGL_SENDFILE_BRAND == BGL_SENDFILE_LINUX ) +-extern ssize_t sendfile( int, int, off_t *, size_t ); ++# include <sys/sendfile.h> + # define BGL_SENDFILE sendfile + # else + # if( BGL_SENDFILE_BRAND == BGL_SENDFILE_BSD ) +--- runtime/Clib/cprocess.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/cprocess.c 2018-12-18 16:52:51.180402745 -0700 +@@ -57,7 +57,7 @@ extern obj_t bgl_close_input_port( obj_t + extern long bgl_list_length( obj_t ); + extern char *bgl_string_to_gc_cstring( obj_t ); + extern obj_t string_to_bstring( char * ); +-extern ssize_t bgl_syswrite( obj_t, char *, size_t ); ++extern ssize_t bgl_syswrite( obj_t, const void *, size_t ); + extern obj_t make_string_sans_fill( long ); + + /*---------------------------------------------------------------------*/ +--- runtime/Clib/csocket.c.orig 2018-12-18 16:52:39.254438046 -0700 ++++ runtime/Clib/csocket.c 2018-12-18 16:52:51.180402745 -0700 +@@ -149,12 +149,11 @@ extern unsigned char bgl_get_hash_number + extern bool_t bigloo_strcmp( obj_t o1, obj_t o2 ); + extern bool_t bgl_dns_enable_cache(); + extern long bgl_dns_cache_validity_timeout(); +-extern ssize_t bgl_syswrite( obj_t, char *, size_t ); ++extern ssize_t bgl_syswrite( obj_t, const void *, size_t ); + extern obj_t make_string_sans_fill( long ); + + #ifndef _BGL_WIN32_VER +-extern int dup( int ); +-extern int close( int ); ++#include <unistd.h> + #endif + + /*---------------------------------------------------------------------*/ +--- runtime/Clib/inline_alloc.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/inline_alloc.c 2018-12-18 16:52:51.180402745 -0700 +@@ -38,7 +38,7 @@ gcollect_verbose( unsigned long heapsz, + GC_API void + bgl_gc_verbose_set( bool_t verbose ) { + #if( (BGL_GC == BGL_BOEHM_GC) && BGL_GC_CUSTOM ) +- extern void GC_add_gc_hook(); ++ extern void GC_add_gc_hook( void (*f)() ); + + if( verbose ) { + fprintf( stderr, "bgl_gc_verbose on...\n" ); diff --git a/bigloo-return.patch b/bigloo-return.patch new file mode 100644 index 0000000..fda7ee4 --- /dev/null +++ b/bigloo-return.patch @@ -0,0 +1,33 @@ +--- runtime/Clib/cmain.c.orig 2018-12-18 16:52:09.913524598 -0700 ++++ runtime/Clib/cmain.c 2018-12-18 16:52:25.221479441 -0700 +@@ -116,10 +116,6 @@ bigloo_exit( obj_t val ) { + + n = (long)INTEGERP( val ) ? (long)CINT( val ) : 0; + exit( n ); +- +- BGL_MUTEX_UNLOCK( bgl_exit_mutex() ); +- +- return val; + } + + /*---------------------------------------------------------------------*/ +--- runtime/Clib/cports.c.orig 2018-12-18 16:51:21.828666449 -0700 ++++ runtime/Clib/cports.c 2018-12-18 16:52:25.222479438 -0700 +@@ -1823,6 +1823,7 @@ bgl_input_port_seek( obj_t port, long po + "input-port does not support seeking", + port ); + } ++ return port; + } + + /*---------------------------------------------------------------------*/ +--- runtime/Clib/crgc.c.orig 2018-12-18 06:25:53.000000000 -0700 ++++ runtime/Clib/crgc.c 2018-12-18 16:52:25.223479435 -0700 +@@ -859,6 +859,7 @@ int rgc_debug_port( obj_t port, char *ms + port, BSTRING_TO_STRING( INPUT_PORT_NAME( port ) ), + matchstart, matchstop, forward, bufpos, bufsiz, + eof ? "eof" : "" ); ++ return 0; + } + + diff --git a/bigloo-test.patch b/bigloo-test.patch new file mode 100644 index 0000000..a6af261 --- /dev/null +++ b/bigloo-test.patch @@ -0,0 +1,9 @@ +--- api/text/recette/recette.scm.orig 2018-12-18 06:25:53.000000000 -0700 ++++ api/text/recette/recette.scm 2019-01-09 20:43:01.779795257 -0700 +@@ -159,4 +159,5 @@ + (format " ~a succeeded\n ~a failed ~a" + *success* + (length *failure*) +- (reverse *failure*)))))) ++ (reverse *failure*)))) ++ (exit (length *failure*)))) diff --git a/bigloo.spec b/bigloo.spec index b872dc8..be96955 100644 --- a/bigloo.spec +++ b/bigloo.spec @@ -17,9 +17,13 @@ %global pkg %{name} %global pkgname Bigloo
+# Bigloo has a customized copy of gc +%bcond_without customgc +%global bundledgc 7.6.2 + Name: bigloo -Version: 4.3c -Release: 2%{?patch_ver:.%{patch_ver}}%{?prerel:.%{prerel}}%{?dist} +Version: 4.3e +Release: 1%{?patch_ver:.%{patch_ver}}%{?prerel:.%{prerel}}%{?dist} Summary: A compiler for the Scheme programming language
License: GPLv2+ @@ -34,11 +38,22 @@ Patch1: %{name}-stat64.patch Patch2: %{name}-format.patch # Not yet sent upstream: add some noreturn attributes Patch3: %{name}-noreturn.patch +# Fix functions that should return a value but do not +Patch4: %{name}-return.patch +# Fix reading past the limits of a stack buffer +Patch5: %{name}-memread.patch +# Fix declarations of function parameters, causes problems on big endian arches +Patch6: %{name}-params.patch +# Make the test suite fail if individual tests fail +Patch7: %{name}-test.patch +# Round top of stack to a multiple of 1024. Fixes stack overflow on s390x. +Patch8: %{name}-callcc.patch
BuildRequires: emacs BuildRequires: xemacs BuildRequires: xemacs-packages-extra BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: indent BuildRequires: java-devel BuildRequires: jpackage-utils @@ -48,10 +63,15 @@ BuildRequires: alsa-lib-devel BuildRequires: avahi-devel BuildRequires: dbus-devel BuildRequires: flac-devel +%if %{without customgc} BuildRequires: gc-devel +%endif BuildRequires: gmp-devel BuildRequires: gstreamer-devel BuildRequires: gstreamer-plugins-base-devel +%if %{with customgc} +BuildRequires: libatomic_ops-devel +%endif BuildRequires: libphidget-devel BuildRequires: libunistring-devel BuildRequires: libuv-devel @@ -68,13 +88,21 @@ Requires: emacs-filesystem >= %{_emacs_version} Requires: xemacs-filesystem >= %{_xemacs_version} Requires: indent Requires: gmp-devel%{?_isa} +%if %{without customgc} Requires: gc-devel%{?_isa} +%endif Requires: gcc Requires: glibc-devel%{?_isa} +%if %{with customgc} +Requires: libatomic_ops-devel%{?_isa} +%endif Requires: libgcc%{?_isa} Requires: libunistring-devel%{?_isa} Requires: libuv-devel%{?_isa}
+%if %{with customgc} +Provides: bundled(gc) = %{bundledgc} +%endif
%description Bigloo is a Scheme implementation devoted to one goal: enabling a Scheme @@ -103,11 +131,7 @@ environment.
%prep -%setup -q -n %{name}%{version}%{?patch_suffix} -%patch0 -%patch1 -%patch2 -%patch3 +%autosetup -p0 -n %{name}%{version}%{?patch_suffix}
# encoding fixes for f in README.md examples/Socket/socket.scm manuals/bigloo*.html \ @@ -131,12 +155,18 @@ find examples -name Makefile -print0 | xargs -0 \ sed -i 's|include.*Makefile.config|include %{_libdir}/bigloo/%{version}/Makefile.config|g'
# fix missing linkage +%if %{without customgc} sed -i 's/^extralibs="-lm"/extralibs="-lgc -lm"/' configure sed -i 's/LDOPTS="/&-Wl,--as-needed -lgc /' Makefile.misc +%endif
# Defeat attempts at inserting unnecessary rpaths sed -ri 's/ ?-Wl,-rpath=[^"]+(")/\1/' configure
+# Work around division by zero issue in 4.3c - 4.3e +%ifarch aarch64 ppc64 ppc64le +sed -i 's/a . b/+inf.0 . +inf.0/' recette/error.scm +%endif
%build %define inplace $PWD/inplace @@ -160,7 +190,11 @@ sed -i -e "s/^jcflags=-O$/jcflags=-deprecation/" configure --jvm=yes \ --javaprefix=%{_jvmdir}/java/bin \ --bee=full \ +%if %{with customgc} + --customgc=yes \ +%else --customgc=no \ +%endif --coflags="$CFLAGS" \ --cpicflags="-fPIC" \ --sharedbde=yes \ @@ -184,6 +218,9 @@ env LD_LIBRARY_PATH=$PWD/lib/bigloo/%{version} \ BIGLOOLIB=%{inplace}%{_libdir}/bigloo/%{version} \ make compile-bee
+# Other permissions are missing from a lot of files +chmod -R o+r . +
%install mkdir -p %{buildroot}%{_emacs_sitelispdir}/bigloo @@ -265,11 +302,8 @@ cat > %{buildroot}%{_xemacs_sitestartdir}/bigloo.el <<EOF EOF
-%ldconfig_scriptlets libs - - %check -export LD_LIBRARY_PATH=$PWD/inplace/%{_libdir}/bigloo/%{version} +ulimit -s unlimited make test
@@ -298,6 +332,16 @@ make test
%changelog +* Wed Jan 30 2019 Jerry James loganjerry@gmail.com - 4.3e-1 +- Update to 4.3e +- Build with custom GC for performance reasons +- Add -return, -memread, and -params patches to fix runtime issues +- Add -test patch to make %%check exit on test failure (bz 1663605) +- Unlimit stack usage in the check script for s390x + +* Sat Jan 5 2019 Tim Landscheidt tim@tim-landscheidt.de - 4.3c-2 +- Do not set LD_LIBRARY_PATH in %%check + * Fri Jan 4 2019 Tim Landscheidt tim@tim-landscheidt.de - 4.3c-2 - Fix setting compiling user for XEmacs byte-compiled files
diff --git a/sources b/sources index 189fdd5..1600c1c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bigloo4.3c.tar.gz) = 161a2e0abe9d83e7b386f01b2db090a3db654d4fa3dbea5b96bf7699a454dc5a9eeb17686aac5c39033ae675a5a8177ae0ff1fb43d79b0bb6596998a8ceaa081 +SHA512 (bigloo4.3e.tar.gz) = e1b8a5b937dae570420a7b79c5a8bb1ced57fb4aa611494d24c5ec300aa4f3314d91d74b3072c09ef23fc4f18cbc8dd312bd62aa16adcf8ef5704c824d90cd15
arch-excludes@lists.fedoraproject.org