libc.so has: 2002: 00000000001adf20 92 FUNC GLOBAL DEFAULT [STD GPLOAD] 11 __nldbl__IO_vfscanf@@GLIBC_2.4 __nldbl__IO_vfscanf should be a compat symbol.
Are you sure? Doesn't alpha have libnldbl.a? I think we would have to build that differently if it's expected to work with compat symbols.
math/libnldbl_nonshared.a references __nldbl__IO_vfscanf.
There are #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29) int attribute_compat_text_section __nldbl__IO_vfscanf (FILE *s, const char *fmt, va_list ap, int *errp) { int ret = __vfscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL); if (__glibc_unlikely (errp != 0)) *errp = (ret == -1); return ret; } #endif and But __nldbl__IO_vfscanf isn't marked as a compat symbol and there are references to __nldbl__IO_vfscanf in libnldbl_nonshared.a.
As discussed on libc-alpha, libnldbl_nonshared.a should use __nldbl___isoc99_vfscanf (vfscanf wasn't part of C89).
I think __nldbl__IO_vfscanf should always be defined: https://patchwork.sourceware.org/project/glibc/list/?series=34326
(In reply to H.J. Lu from comment #5) > I think __nldbl__IO_vfscanf should always be defined: > > https://patchwork.sourceware.org/project/glibc/list/?series=34326 __nldbl__IO_vfscanf should be a compat symbol: https://patchwork.sourceware.org/project/glibc/list/?series=34338
The failures I see are: * alpha-linux-gnu Missing functions in libc.a: __nldbl__IO_vfscanf * i686-gnu Missing functions in libc.a: __pthread_get_cleanup_stack pthread_attr_destroy pthread_attr_getscope pthread_attr_init pthread_attr_setschedparam pthread_attr_setscope pthread_cond_broadcast pthread_cond_destroy pthread_cond_init pthread_cond_signal pthread_cond_timedwait pthread_cond_wait pthread_condattr_destroy pthread_condattr_init pthread_exit pthread_mutex_destroy pthread_mutex_init pthread_mutex_lock pthread_mutex_unlock pthread_setcancelstate pthread_setcanceltype Extra functions in libc.a: evc_wait_clear.o: evc_wait_clear fchroot.o: fchroot path-lookup.o: file_name_path_scan errstring.o: mach_error_full_diag errstring.o: mach_error_string_int mach_init.o: mach_init mach_msg_trap.o: mach_msg_trap Extra functions in libhurduser.a: RPC_auth_getids.o: auth_getids RPC_auth_makeauth.o: auth_makeauth RPC_auth_server_authenticate.o: auth_server_authenticate RPC_auth_user_authenticate.o: auth_user_authenticate RPC_crash_dump_task.o: crash_dump_task RPC_dir_link.o: dir_link RPC_dir_lookup.o: dir_lookup RPC_dir_mkdir.o: dir_mkdir RPC_dir_mkfile.o: dir_mkfile Extra functions in libmachuser.a: RPC_device_close.o: device_close RPC_device_get_status.o: device_get_status RPC_device_intr_ack.o: device_intr_ack RPC_device_intr_register.o: device_intr_register RPC_device_map.o: device_map RPC_device_open.o: device_open RPC_device_open_new.o: device_open_new RPC_device_open_new_request.o: device_open_new_request RPC_device_open_request.o: device_open_request * powerpc*-linux-gnu * s390*-linux-gnu * sparcv8-linux-gnu * sparcv9-linux-gnu Missing functions in libc.a: __nldbl__IO_vfscanf * x86_64-gnu Missing functions in libc.a: __pthread_get_cleanup_stack pthread_attr_destroy pthread_attr_getscope pthread_attr_init pthread_attr_setschedparam pthread_attr_setscope pthread_cond_broadcast pthread_cond_destroy pthread_cond_init pthread_cond_signal pthread_cond_timedwait pthread_cond_wait pthread_condattr_destroy pthread_condattr_init pthread_exit pthread_mutex_destroy pthread_mutex_init pthread_mutex_lock pthread_mutex_unlock pthread_setcancelstate pthread_setcanceltype Extra functions in libc.a: evc_wait_clear.o: evc_wait_clear fchroot.o: fchroot path-lookup.o: file_name_path_scan errstring.o: mach_error_full_diag errstring.o: mach_error_string_int mach_init.o: mach_init mach_msg_trap.o: mach_msg_trap Extra functions in libhurduser.a: RPC_auth_getids.o: auth_getids RPC_auth_makeauth.o: auth_makeauth RPC_auth_server_authenticate.o: auth_server_authenticate RPC_auth_user_authenticate.o: auth_user_authenticate RPC_crash_dump_task.o: crash_dump_task RPC_dir_link.o: dir_link RPC_dir_lookup.o: dir_lookup RPC_dir_mkdir.o: dir_mkdir RPC_dir_mkfile.o: dir_mkfile Extra functions in libmachuser.a: RPC_device_close.o: device_close RPC_device_get_status.o: device_get_status RPC_device_intr_ack.o: device_intr_ack RPC_device_intr_register.o: device_intr_register RPC_device_map.o: device_map RPC_device_open.o: device_open RPC_device_open_new.o: device_open_new RPC_device_open_new_request.o: device_open_new_request RPC_device_open_request.o: device_open_request