On Wed, Dec 25 2019, Jeremy Evans <jer...@openbsd.org> wrote: > Ruby 2.7.0 was released today. Release announcement is at > https://www.ruby-lang.org/en/news/2019/12/25/ruby-2-7-0-released/ > > Some highlights: > > * Pattern matching > * Improvements to irb (multiline, syntax highlighting) > * Compacting garbage collector > * Separation of keyword and positional arguments > * Numbered parameters > > Tested on amd64, for about 9 months starting with the first preview > release. OK to import?
This fails on sparc64, log attached. It *seems* that the configure tests are picky because of APIWARN and libgmp. And indeed the build fails similarly on amd64 with USE_LLD=No (only ld.bfd warns about unsafe functions, ld.lld does not). --8<-- configure:18665: checking for function name string predefined identifier configure:18696: cc -std=gnu99 -o conftest -O2 -pipe -Wall -Wextra -Wdeprecated-declarations -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -DOPENSSL_NO_STATIC_ENGINE -I/usr/local/include -L/usr/local/lib -fstack-protector-strong conftest.c -lgmp -lm >&5 /usr/local/lib/libgmp.so.10.0: warning: vsprintf() is often misused, please use vsnprintf() configure:18696: $? = 0 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define __EXTENSIONS__ 1 | #define _ALL_SOURCE 1 | #define _GNU_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define _TANDEM_SOURCE 1 | #define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)") | #define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop") | #define HAVE_STMT_AND_DECL_IN_EXPR 1 | #define HAVE_DIRENT_H 1 | #define HAVE__BOOL 1 | #define HAVE_STDBOOL_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_A_OUT_H 1 | #define HAVE_GRP_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FLOAT_H 1 | #define HAVE_IEEEFP_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SYS_FCNTL_H 1 | #define HAVE_SYS_FILE_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_RESOURCE_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_SOCKET_H 1 | #define HAVE_SYS_SYSCALL_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_TIMES_H 1 | #define HAVE_SYS_UIO_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_GMP_H 1 | #define HAVE_LIBGMP 1 | #define WORDS_BIGENDIAN 1 | #define HAVE_TYPEOF 1 | #define restrict __restrict__ | #define HAVE_LONG_LONG 1 | #define HAVE_OFF_T 1 | #define SIZEOF_INT 4 | #define SIZEOF_SHORT 2 | #define SIZEOF_LONG 8 | #define SIZEOF_LONG_LONG 8 | #define SIZEOF___INT64 0 | #define SIZEOF___INT128 0 | #define SIZEOF_OFF_T 8 | #define SIZEOF_VOIDP 8 | #define SIZEOF_FLOAT 4 | #define SIZEOF_DOUBLE 8 | #define SIZEOF_TIME_T 8 | #define SIZEOF_CLOCK_T 8 | #define PACKED_STRUCT(x) x __attribute__((packed)) | #define USE_UNALIGNED_MEMBER_ACCESS 1 | #define PRI_LL_PREFIX "ll" | #define HAVE_PID_T 1 | #define rb_pid_t pid_t | #define SIGNEDNESS_OF_PID_T -1 | #define PIDT2NUM(v) INT2NUM(v) | #define NUM2PIDT(v) NUM2INT(v) | #define PRI_PIDT_PREFIX PRI_INT_PREFIX | #define HAVE_UID_T 1 | #define rb_uid_t uid_t | #define SIGNEDNESS_OF_UID_T +1 | #define UIDT2NUM(v) UINT2NUM(v) | #define NUM2UIDT(v) NUM2UINT(v) | #define PRI_UIDT_PREFIX PRI_INT_PREFIX | #define HAVE_GID_T 1 | #define rb_gid_t gid_t | #define SIGNEDNESS_OF_GID_T +1 | #define GIDT2NUM(v) UINT2NUM(v) | #define NUM2GIDT(v) NUM2UINT(v) | #define PRI_GIDT_PREFIX PRI_INT_PREFIX | #define HAVE_TIME_T 1 | #define rb_time_t time_t | #define SIGNEDNESS_OF_TIME_T -1 | #define TIMET2NUM(v) LL2NUM(v) | #define NUM2TIMET(v) NUM2LL(v) | #define PRI_TIMET_PREFIX PRI_LL_PREFIX | #define HAVE_DEV_T 1 | #define rb_dev_t dev_t | #define SIGNEDNESS_OF_DEV_T -1 | #define DEVT2NUM(v) INT2NUM(v) | #define NUM2DEVT(v) NUM2INT(v) | #define PRI_DEVT_PREFIX PRI_INT_PREFIX | #define HAVE_MODE_T 1 | #define rb_mode_t mode_t | #define SIGNEDNESS_OF_MODE_T +1 | #define MODET2NUM(v) UINT2NUM(v) | #define NUM2MODET(v) NUM2UINT(v) | #define PRI_MODET_PREFIX PRI_INT_PREFIX | #define HAVE_RLIM_T 1 | #define rb_rlim_t rlim_t | #define SIGNEDNESS_OF_RLIM_T +1 | #define RLIM2NUM(v) ULL2NUM(v) | #define NUM2RLIM(v) NUM2ULL(v) | #define PRI_RLIM_PREFIX PRI_LL_PREFIX | #define HAVE_OFF_T 1 | #define rb_off_t off_t | #define SIGNEDNESS_OF_OFF_T -1 | #define OFFT2NUM(v) LL2NUM(v) | #define NUM2OFFT(v) NUM2LL(v) | #define PRI_OFFT_PREFIX PRI_LL_PREFIX | #define HAVE_CLOCKID_T 1 | #define rb_clockid_t clockid_t | #define SIGNEDNESS_OF_CLOCKID_T -1 | #define CLOCKID2NUM(v) INT2NUM(v) | #define NUM2CLOCKID(v) NUM2INT(v) | #define PRI_CLOCKID_PREFIX PRI_INT_PREFIX | #define HAVE_PROTOTYPES 1 | #define TOKEN_PASTE(x,y) x##y | #define STRINGIZE(expr) STRINGIZE0(expr) | #define HAVE_STDARG_PROTOTYPES 1 | #define HAVE_VA_ARGS_MACRO 1 | #define RUBY_ALIGNAS(x) __attribute__((__aligned__(x))) | #define RUBY_ALIGNOF __alignof | #define CONSTFUNC(x) __attribute__ ((__const__)) x | #define PUREFUNC(x) __attribute__ ((__pure__)) x | #define NORETURN(x) __attribute__ ((__noreturn__)) x | #define DEPRECATED(x) __attribute__ ((__deprecated__)) x | #define DEPRECATED_TYPE(mesg,x) __attribute__ ((__deprecated__ mesg)) x | #define NOINLINE(x) __attribute__ ((__noinline__)) x | #define ALWAYS_INLINE(x) __attribute__ ((__always_inline__)) x | #define WARN_UNUSED_RESULT(x) __attribute__ ((__warn_unused_result__)) x | #define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x | #define WEAK(x) __attribute__ ((__weak__)) x | #define HAVE_FUNC_WEAK 1 | #define HAVE_ATTRIBUTE_FUNCTION_ALIAS 1 | #define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) type prot __attribute__((alias(#name))); | #define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) RUBY_ALIAS_FUNCTION_TYPE(void, prot, name, args) | #define HAVE_GCC_SYNC_BUILTINS 1 | #define RUBY_FUNC_EXPORTED __attribute__ ((__visibility__("default"))) extern | #define RUBY_FUNC_NONNULL(n,x) __attribute__ ((__nonnull__(n))) x | /* end confdefs.h. */ | #include <stdio.h> | int | main () | { | puts(__func__); | ; | return 0; | } configure:18696: cc -std=gnu99 -o conftest -O2 -pipe -Wall -Wextra -Wdeprecated-declarations -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -DOPENSSL_NO_STATIC_ENGINE -I/usr/local/include -L/usr/local/lib -fstack-protector-strong conftest.c -lgmp -lm >&5 /usr/local/lib/libgmp.so.10.0: warning: vsprintf() is often misused, please use vsnprintf() configure:18696: $? = 0 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define __EXTENSIONS__ 1 | #define _ALL_SOURCE 1 | #define _GNU_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define _TANDEM_SOURCE 1 | #define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)") | #define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop") | #define HAVE_STMT_AND_DECL_IN_EXPR 1 | #define HAVE_DIRENT_H 1 | #define HAVE__BOOL 1 | #define HAVE_STDBOOL_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_A_OUT_H 1 | #define HAVE_GRP_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FLOAT_H 1 | #define HAVE_IEEEFP_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SYS_FCNTL_H 1 | #define HAVE_SYS_FILE_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_RESOURCE_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_SOCKET_H 1 | #define HAVE_SYS_SYSCALL_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_TIMES_H 1 | #define HAVE_SYS_UIO_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_GMP_H 1 | #define HAVE_LIBGMP 1 | #define WORDS_BIGENDIAN 1 | #define HAVE_TYPEOF 1 | #define restrict __restrict__ | #define HAVE_LONG_LONG 1 | #define HAVE_OFF_T 1 | #define SIZEOF_INT 4 | #define SIZEOF_SHORT 2 | #define SIZEOF_LONG 8 | #define SIZEOF_LONG_LONG 8 | #define SIZEOF___INT64 0 | #define SIZEOF___INT128 0 | #define SIZEOF_OFF_T 8 | #define SIZEOF_VOIDP 8 | #define SIZEOF_FLOAT 4 | #define SIZEOF_DOUBLE 8 | #define SIZEOF_TIME_T 8 | #define SIZEOF_CLOCK_T 8 | #define PACKED_STRUCT(x) x __attribute__((packed)) | #define USE_UNALIGNED_MEMBER_ACCESS 1 | #define PRI_LL_PREFIX "ll" | #define HAVE_PID_T 1 | #define rb_pid_t pid_t | #define SIGNEDNESS_OF_PID_T -1 | #define PIDT2NUM(v) INT2NUM(v) | #define NUM2PIDT(v) NUM2INT(v) | #define PRI_PIDT_PREFIX PRI_INT_PREFIX | #define HAVE_UID_T 1 | #define rb_uid_t uid_t | #define SIGNEDNESS_OF_UID_T +1 | #define UIDT2NUM(v) UINT2NUM(v) | #define NUM2UIDT(v) NUM2UINT(v) | #define PRI_UIDT_PREFIX PRI_INT_PREFIX | #define HAVE_GID_T 1 | #define rb_gid_t gid_t | #define SIGNEDNESS_OF_GID_T +1 | #define GIDT2NUM(v) UINT2NUM(v) | #define NUM2GIDT(v) NUM2UINT(v) | #define PRI_GIDT_PREFIX PRI_INT_PREFIX | #define HAVE_TIME_T 1 | #define rb_time_t time_t | #define SIGNEDNESS_OF_TIME_T -1 | #define TIMET2NUM(v) LL2NUM(v) | #define NUM2TIMET(v) NUM2LL(v) | #define PRI_TIMET_PREFIX PRI_LL_PREFIX | #define HAVE_DEV_T 1 | #define rb_dev_t dev_t | #define SIGNEDNESS_OF_DEV_T -1 | #define DEVT2NUM(v) INT2NUM(v) | #define NUM2DEVT(v) NUM2INT(v) | #define PRI_DEVT_PREFIX PRI_INT_PREFIX | #define HAVE_MODE_T 1 | #define rb_mode_t mode_t | #define SIGNEDNESS_OF_MODE_T +1 | #define MODET2NUM(v) UINT2NUM(v) | #define NUM2MODET(v) NUM2UINT(v) | #define PRI_MODET_PREFIX PRI_INT_PREFIX | #define HAVE_RLIM_T 1 | #define rb_rlim_t rlim_t | #define SIGNEDNESS_OF_RLIM_T +1 | #define RLIM2NUM(v) ULL2NUM(v) | #define NUM2RLIM(v) NUM2ULL(v) | #define PRI_RLIM_PREFIX PRI_LL_PREFIX | #define HAVE_OFF_T 1 | #define rb_off_t off_t | #define SIGNEDNESS_OF_OFF_T -1 | #define OFFT2NUM(v) LL2NUM(v) | #define NUM2OFFT(v) NUM2LL(v) | #define PRI_OFFT_PREFIX PRI_LL_PREFIX | #define HAVE_CLOCKID_T 1 | #define rb_clockid_t clockid_t | #define SIGNEDNESS_OF_CLOCKID_T -1 | #define CLOCKID2NUM(v) INT2NUM(v) | #define NUM2CLOCKID(v) NUM2INT(v) | #define PRI_CLOCKID_PREFIX PRI_INT_PREFIX | #define HAVE_PROTOTYPES 1 | #define TOKEN_PASTE(x,y) x##y | #define STRINGIZE(expr) STRINGIZE0(expr) | #define HAVE_STDARG_PROTOTYPES 1 | #define HAVE_VA_ARGS_MACRO 1 | #define RUBY_ALIGNAS(x) __attribute__((__aligned__(x))) | #define RUBY_ALIGNOF __alignof | #define CONSTFUNC(x) __attribute__ ((__const__)) x | #define PUREFUNC(x) __attribute__ ((__pure__)) x | #define NORETURN(x) __attribute__ ((__noreturn__)) x | #define DEPRECATED(x) __attribute__ ((__deprecated__)) x | #define DEPRECATED_TYPE(mesg,x) __attribute__ ((__deprecated__ mesg)) x | #define NOINLINE(x) __attribute__ ((__noinline__)) x | #define ALWAYS_INLINE(x) __attribute__ ((__always_inline__)) x | #define WARN_UNUSED_RESULT(x) __attribute__ ((__warn_unused_result__)) x | #define MAYBE_UNUSED(x) __attribute__ ((__unused__)) x | #define WEAK(x) __attribute__ ((__weak__)) x | #define HAVE_FUNC_WEAK 1 | #define HAVE_ATTRIBUTE_FUNCTION_ALIAS 1 | #define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) type prot __attribute__((alias(#name))); | #define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) RUBY_ALIAS_FUNCTION_TYPE(void, prot, name, args) | #define HAVE_GCC_SYNC_BUILTINS 1 | #define RUBY_FUNC_EXPORTED __attribute__ ((__visibility__("default"))) extern | #define RUBY_FUNC_NONNULL(n,x) __attribute__ ((__nonnull__(n))) x | /* end confdefs.h. */ | #include <stdio.h> | int | main () | { | puts(__FUNCTION__); | ; | return 0; | } configure:18717: result: no -->8--
ruby27-sparc64.log.gz
Description: Binary data
-- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE