From patchwork Thu Mar 12 01:41:58 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 131555 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 077E44B920FA for ; Thu, 12 Mar 2026 01:47:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 077E44B920FA X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 9FF9A4BB593D for ; Thu, 12 Mar 2026 01:46:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9FF9A4BB593D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9FF9A4BB593D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773279995; cv=none; b=nQXoapXDztNiUTzo13D9RXn658D2Y32HRTcFbA0OAjk5m37y5YhUXKL04/Ofq/JVXQKfReSzZJx2rLvRyG7AzB1rXnbpByXU77ehuVxztUmZ7fZFEGDnkDAndkZjnahVJEoUGI7Z0lG8CmZw16/rSFTxVe+dNgv2gRYaokUHZ5I= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773279995; c=relaxed/simple; bh=bRxhTaHa9U5W1JfYoG9sIrLwM8sQ2Oz0X/hIE5EFZnI=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=yDIINzn4ad3O1C/1K8XYbphp9fulDzDQ/go6dF+riICmrW1fJxtqJCmz+ZYaLLMVNHwPaik0cb5jOv8hHSYg3B4DkEmR49YnlnV+JPcGf2rhvsKioiFYEXhAPPsiMoOO91TxsP6gq/bdAshGt1eOULKkLrtdMRlgPtOeuNy5gjA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9FF9A4BB593D Received: from loongson.cn (unknown [10.2.6.7]) by gateway (Coremail) with SMTP id _____8DxL6rxGrJpAy4aAA--.17584S3; Thu, 12 Mar 2026 09:46:25 +0800 (CST) Received: from amd9754.. (unknown [10.2.6.7]) by front1 (Coremail) with SMTP id qMiowJAxGMHqGrJpsYBTAA--.14114S2; Thu, 12 Mar 2026 09:46:18 +0800 (CST) From: mengqinggang To: libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, fweimer@redhat.com, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, hejinyang@loongson.cn, mengqinggang@loongson.cn Subject: [PATCH v6 1/6] LoongArch: Add support for LA32 in sysdeps/loongarch Date: Thu, 12 Mar 2026 09:41:58 +0800 Message-Id: <20260312014203.1916933-2-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260312014203.1916933-1-mengqinggang@loongson.cn> References: <20260312014203.1916933-1-mengqinggang@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: qMiowJAxGMHqGrJpsYBTAA--.14114S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org --- scripts/build-many-glibcs.py | 13 +++- sysdeps/loongarch/configure | 29 ++++---- sysdeps/loongarch/configure.ac | 21 +++--- sysdeps/loongarch/dl-machine.h | 16 +++-- sysdeps/loongarch/dl-tlsdesc-dynamic.h | 37 +++++----- sysdeps/loongarch/dl-tlsdesc.S | 6 +- sysdeps/loongarch/dl-trampoline.h | 4 +- sysdeps/loongarch/hp-timing.h | 9 +++ sysdeps/loongarch/preconfigure | 3 +- sysdeps/loongarch/preconfigure.ac | 3 +- sysdeps/loongarch/sfp-machine.h | 33 +++++++++ sysdeps/loongarch/start.S | 32 ++++++--- sysdeps/loongarch/sys/asm.h | 93 ++++++++++++++++++++++++-- sysdeps/loongarch/tst-gnu2-tls2.h | 50 ++++++-------- 14 files changed, 246 insertions(+), 103 deletions(-) diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index 6fabd2db96..04aff68236 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -262,12 +262,18 @@ class Context(object): os_name='linux-gnu') self.add_config(arch='i686', os_name='gnu') + self.add_config(arch='loongarch32', + os_name='linux-gnu', + gcc_cfg=['--with-arch=la32v1.0', '--disable-multilib']) + self.add_config(arch='loongarch32', + os_name='linux-gnusf', + gcc_cfg=['--with-arch=la32rv1.0', '--disable-multilib']) self.add_config(arch='loongarch64', - os_name='linux-gnuf64', - gcc_cfg=['--disable-multilib']) + os_name='linux-gnu', + gcc_cfg=['--with-arch=loongarch64', '--disable-multilib']) self.add_config(arch='loongarch64', os_name='linux-gnusf', - gcc_cfg=['--disable-multilib']) + gcc_cfg=['--with-arch=loongarch64', '--disable-multilib']) self.add_config(arch='m68k', os_name='linux-gnu', gcc_cfg=['--disable-multilib']) @@ -1368,6 +1374,7 @@ def install_linux_headers(policy, cmdlist): 'i586': 'x86', 'i686': 'x86', 'i786': 'x86', + 'loongarch32': 'loongarch', 'loongarch64': 'loongarch', 'm68k': 'm68k', 'microblaze': 'microblaze', diff --git a/sysdeps/loongarch/configure b/sysdeps/loongarch/configure index d3d9fec910..f32f9ae91a 100644 --- a/sysdeps/loongarch/configure +++ b/sysdeps/loongarch/configure @@ -113,7 +113,8 @@ if test $libc_cv_loongarch_vec_asm = no; then as_fn_error $? "binutils version is too old, use 2.41 or newer version" "$LINENO" 5 fi - +# Check if compiler support vector instructions. +# Add -mlsx because la32 gcc disable lsx by default. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for vector support in compiler" >&5 printf %s "checking for vector support in compiler... " >&6; } if test ${libc_cv_loongarch_vec_com+y} @@ -121,30 +122,28 @@ then : printf %s "(cached) " >&6 else case e in #( e) -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - +cat > conftest.c <<\EOF void foo (void) { asm volatile ("vldi \$vr0, 1" ::: "\$vr0"); - asm volatile ("xvldi \$xr0, 1" ::: "\$xr0"); } - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +EOF +if { ac_try='${CC-cc} -c -mlsx $CFLAGS conftest.s -o conftest 1>&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then libc_cv_loongarch_vec_com=yes -else case e in #( - e) libc_cv_loongarch_vec_com=no ;; -esac +else + libc_cv_loongarch_vec_com=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +rm -f conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_loongarch_vec_com" >&5 printf "%s\n" "$libc_cv_loongarch_vec_com" >&6; } -if test "$libc_cv_loongarch_vec_com" = yes ; -then +if test "$libc_cv_loongarch_vec_com" = yes ; then printf "%s\n" "#define HAVE_LOONGARCH_VEC_COM 1" >>confdefs.h fi diff --git a/sysdeps/loongarch/configure.ac b/sysdeps/loongarch/configure.ac index c56a203574..425416ced7 100644 --- a/sysdeps/loongarch/configure.ac +++ b/sysdeps/loongarch/configure.ac @@ -66,19 +66,22 @@ if test $libc_cv_loongarch_vec_asm = no; then AC_MSG_ERROR([binutils version is too old, use 2.41 or newer version]) fi -AC_CACHE_CHECK([for vector support in compiler], - libc_cv_loongarch_vec_com, [ -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +# Check if compiler support vector instructions. +# Add -mlsx because la32 gcc disable lsx by default. +AC_CACHE_CHECK([for vector support in compiler], libc_cv_loongarch_vec_com, [ +cat > conftest.c <<\EOF void foo (void) { asm volatile ("vldi \$vr0, 1" ::: "\$vr0"); - asm volatile ("xvldi \$xr0, 1" ::: "\$xr0"); } -]])], - [libc_cv_loongarch_vec_com=yes], - [libc_cv_loongarch_vec_com=no])]) -if test "$libc_cv_loongarch_vec_com" = yes ; -then +EOF +if AC_TRY_COMMAND(${CC-cc} -c -mlsx $CFLAGS conftest.s -o conftest 1>&AS_MESSAGE_LOG_FD); then + libc_cv_loongarch_vec_com=yes +else + libc_cv_loongarch_vec_com=no +fi +rm -f conftest*]) +if test "$libc_cv_loongarch_vec_com" = yes ; then AC_DEFINE(HAVE_LOONGARCH_VEC_COM) fi LIBC_CONFIG_VAR([loongarch-vec-com], [$libc_cv_loongarch_vec_com]) diff --git a/sysdeps/loongarch/dl-machine.h b/sysdeps/loongarch/dl-machine.h index b5fb67debb..e8ee50b810 100644 --- a/sysdeps/loongarch/dl-machine.h +++ b/sysdeps/loongarch/dl-machine.h @@ -98,6 +98,8 @@ static inline ElfW (Addr) elf_machine_dynamic (void) return (ElfW(Addr)) _DYNAMIC - elf_machine_load_address (); } +#define STRINGXP(X) __STRING (X) + /* Initial entry point code for the dynamic linker. The C function `_dl_start' is the real entry point; its return value is the user program's entry point. */ @@ -112,19 +114,19 @@ static inline ElfW (Addr) elf_machine_dynamic (void) # Stash user entry point in s0. \n\ or $s0, $a0, $zero \n\ # Load the original argument count. \n\ - ld.d $a1, $sp, 0 \n\ + " STRINGXP (REG_L) " $a1, $sp, 0 \n\ # Call _dl_init (struct link_map *main_map, int argc, \ char **argv, char **env) \n\ la $a0, _rtld_local \n\ - ld.d $a0, $a0, 0 \n\ - addi.d $a2, $sp, 8 \n\ - slli.d $a3, $a1, 3 \n\ - add.d $a3, $a3, $a2 \n\ - addi.d $a3, $a3, 8 \n\ + " STRINGXP (REG_L) " $a0, $a0, 0 \n\ + " STRINGXP (ADDI) " $a2, $sp, " STRINGXP (SZREG) " \n\ + " STRINGXP (SLLI) " $a3, $a1, " STRINGXP (PTRLOG) " \n\ + " STRINGXP (ADD) " $a3, $a3, $a2 \n\ + " STRINGXP (ADDI) " $a3, $a3, " STRINGXP (SZREG) " \n\ # Stash the stack pointer in s1.\n\ or $s1, $sp, $zero \n\ # Adjust $sp for 16-aligned \n\ - bstrins.d $sp, $zero, 3, 0 \n\ + " REG_ALIGN_C ($sp, 4) " \n\ # Call the function to run the initializers. \n\ bl _dl_init \n\ # Restore the stack pointer for _start.\n\ diff --git a/sysdeps/loongarch/dl-tlsdesc-dynamic.h b/sysdeps/loongarch/dl-tlsdesc-dynamic.h index 9edae3afc8..78e9087417 100644 --- a/sysdeps/loongarch/dl-tlsdesc-dynamic.h +++ b/sysdeps/loongarch/dl-tlsdesc-dynamic.h @@ -53,14 +53,14 @@ _dl_tlsdesc_dynamic: /* Save just enough registers to support fast path, if we fall into slow path we will save additional registers. */ - ADDI sp, sp, -32 - cfi_adjust_cfa_offset (32) + ADDI sp, sp, -(4 * SZREG) + cfi_adjust_cfa_offset (4 * SZREG) REG_S t0, sp, 0 - REG_S t1, sp, 8 - REG_S t2, sp, 16 + REG_S t1, sp, SZREG + REG_S t2, sp, 2 * SZREG cfi_rel_offset (12, 0) - cfi_rel_offset (13, 8) - cfi_rel_offset (14, 16) + cfi_rel_offset (13, SZREG) + cfi_rel_offset (14, 2 * SZREG) /* Runtime Storage Layout of Thread-Local Storage TP point to the start of TLS block. @@ -81,11 +81,11 @@ Hign address dynamic_block1 <----- dtv5 */ bltu t2, t1, .Lslow REG_L t1, a0, TLSDESC_MODID /* t1 = td->tlsinfo.ti_module */ - /* t1 = t1 * sizeof(dtv_t) = t1 * (2 * sizeof(void*)) */ - slli.d t1, t1, 4 - add.d t1, t1, t0 /* t1 = dtv[td->tlsinfo.ti_module] */ + /* t1 = t1 * sizeof(dtv_pointer) = t1 * (2 * sizeof(void*)) */ + SLLI t1, t1, (PTRLOG + 1) + ADD t1, t1, t0 /* t1 = dtv[td->tlsinfo.ti_module] */ REG_L t1, t1, 0 /* t1 = dtv[td->tlsinfo.ti_module].pointer.val */ - li.d t2, TLS_DTV_UNALLOCATED + LI t2, TLS_DTV_UNALLOCATED /* If dtv[td->tlsinfo.ti_module].pointer.val is TLS_DTV_UNALLOCATED, goto slow path. */ beq t1, t2, .Lslow @@ -93,14 +93,14 @@ Hign address dynamic_block1 <----- dtv5 */ cfi_remember_state REG_L t2, a0, TLSDESC_MODOFF /* t2 = td->tlsinfo.ti_offset */ /* dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset */ - add.d a0, t1, t2 + ADD a0, t1, t2 .Lret: - sub.d a0, a0, tp + SUB a0, a0, tp REG_L t0, sp, 0 - REG_L t1, sp, 8 - REG_L t2, sp, 16 - ADDI sp, sp, 32 - cfi_adjust_cfa_offset (-32) + REG_L t1, sp, SZREG + REG_L t2, sp, 2 * SZREG + ADDI sp, sp, 4 * SZREG + cfi_adjust_cfa_offset (-(4 * SZREG)) RET .Lslow: @@ -147,7 +147,8 @@ Hign address dynamic_block1 <----- dtv5 */ Only one physical fcsr0 register, fcsr1-fcsr3 are aliases of some fields in fcsr0. */ movfcsr2gr t0, fcsr0 - st.w t0, sp, FRAME_SIZE + 24 /* Use the spare slot above t2. */ + /* Use the spare slot above t2. */ + st.w t0, sp, FRAME_SIZE + 3 * SZREG #ifdef USE_LASX #define V_REG_S xvst @@ -194,7 +195,7 @@ Hign address dynamic_block1 <----- dtv5 */ cfi_adjust_cfa_offset (-V_SPACE) /* Restore fcsr0 register. */ - ld.w t0, sp, FRAME_SIZE + 24 + ld.w t0, sp, FRAME_SIZE + 3 * SZREG movgr2fcsr fcsr0, t0 #endif /* #ifndef __loongarch_soft_float */ diff --git a/sysdeps/loongarch/dl-tlsdesc.S b/sysdeps/loongarch/dl-tlsdesc.S index 38a2218151..47d3766857 100644 --- a/sysdeps/loongarch/dl-tlsdesc.S +++ b/sysdeps/loongarch/dl-tlsdesc.S @@ -34,7 +34,7 @@ cfi_startproc .align 2 _dl_tlsdesc_return: - REG_L a0, a0, 8 + REG_L a0, a0, SZREG RET cfi_endproc .size _dl_tlsdesc_return, .-_dl_tlsdesc_return @@ -53,8 +53,8 @@ _dl_tlsdesc_return: cfi_startproc .align 2 _dl_tlsdesc_undefweak: - REG_L a0, a0, 8 - sub.d a0, a0, tp + REG_L a0, a0, SZREG + SUB a0, a0, tp RET cfi_endproc .size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak diff --git a/sysdeps/loongarch/dl-trampoline.h b/sysdeps/loongarch/dl-trampoline.h index aea6e287c8..578ed8600a 100644 --- a/sysdeps/loongarch/dl-trampoline.h +++ b/sysdeps/loongarch/dl-trampoline.h @@ -160,7 +160,7 @@ ENTRY (_dl_runtime_profile) /* Save arguments to stack. */ ADDI sp, sp, -SF_SIZE REG_S ra, sp, 0 - REG_S fp, sp, 8 + REG_S fp, sp, SZREG or fp, sp, zero @@ -270,7 +270,7 @@ ENTRY (_dl_runtime_profile) 1: /* The new frame size is in t3. */ SUB sp, fp, t3 - BSTRINS sp, zero, 3, 0 + REG_ALIGN_ASM (sp, 4) REG_S a0, fp, OFFSET_T1 diff --git a/sysdeps/loongarch/hp-timing.h b/sysdeps/loongarch/hp-timing.h index 9e68e38fa6..8aeb91e4f2 100644 --- a/sysdeps/loongarch/hp-timing.h +++ b/sysdeps/loongarch/hp-timing.h @@ -30,12 +30,21 @@ typedef unsigned long long int hp_timing_t; /* Read the stable counter. */ +#ifdef __loongarch64 #define HP_TIMING_NOW(Var) \ ({ \ unsigned long long int _count; \ asm volatile ("rdtime.d\t%0,$r0" : "=r" (_count)); \ (Var) = _count; \ }) +#else +#define HP_TIMING_NOW(Var) \ + ({ unsigned int _countl,_counth ; \ + asm volatile ("rdtimel.w\t%0,$r0\n\trdtimeh.w\t%1,$r0" \ + : "=r" (_countl), "=r"(_counth)); \ + (Var) = ((_counth & -1ULL << 32 ) | _countl); \ + }) +#endif #include diff --git a/sysdeps/loongarch/preconfigure b/sysdeps/loongarch/preconfigure index 6726ab8302..4248091f53 100644 --- a/sysdeps/loongarch/preconfigure +++ b/sysdeps/loongarch/preconfigure @@ -26,7 +26,8 @@ loongarch*) case "$abi" in ilp32) - as_fn_error 1 "loongarch does not yet support ilp32 ABI!!" "$LINENO" 5 + grlen=32 + machine=loongarch/ilp32 ;; lp64) grlen=64 diff --git a/sysdeps/loongarch/preconfigure.ac b/sysdeps/loongarch/preconfigure.ac index 56402261df..2602aa17bf 100644 --- a/sysdeps/loongarch/preconfigure.ac +++ b/sysdeps/loongarch/preconfigure.ac @@ -26,7 +26,8 @@ loongarch*) case "$abi" in ilp32) - AC_MSG_ERROR([loongarch does not yet support ilp32 ABI!!], 1) + grlen=32 + machine=loongarch/ilp32 ;; lp64) grlen=64 diff --git a/sysdeps/loongarch/sfp-machine.h b/sysdeps/loongarch/sfp-machine.h index 986883b352..b0ce04add9 100644 --- a/sysdeps/loongarch/sfp-machine.h +++ b/sysdeps/loongarch/sfp-machine.h @@ -20,6 +20,37 @@ #include #include +#if __loongarch_grlen == 32 + +# define _FP_W_TYPE_SIZE 32 +# define _FP_W_TYPE unsigned long +# define _FP_WS_TYPE signed long +# define _FP_I_TYPE long + +# define _FP_MUL_MEAT_S(R, X, Y) \ + _FP_MUL_MEAT_1_wide (_FP_WFRACBITS_S, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_D(R, X, Y) \ + _FP_MUL_MEAT_2_wide (_FP_WFRACBITS_D, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_Q(R, X, Y) \ + _FP_MUL_MEAT_4_wide (_FP_WFRACBITS_Q, R, X, Y, umul_ppmm) + +# define _FP_MUL_MEAT_DW_S(R, X, Y) \ + _FP_MUL_MEAT_DW_1_wide (_FP_WFRACBITS_S, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_DW_D(R, X, Y) \ + _FP_MUL_MEAT_DW_2_wide (_FP_WFRACBITS_D, R, X, Y, umul_ppmm) +# define _FP_MUL_MEAT_DW_Q(R, X, Y) \ + _FP_MUL_MEAT_DW_4_wide (_FP_WFRACBITS_Q, R, X, Y, umul_ppmm) + +# define _FP_DIV_MEAT_S(R, X, Y) _FP_DIV_MEAT_1_udiv_norm (S, R, X, Y) +# define _FP_DIV_MEAT_D(R, X, Y) _FP_DIV_MEAT_2_udiv (D, R, X, Y) +# define _FP_DIV_MEAT_Q(R, X, Y) _FP_DIV_MEAT_4_udiv (Q, R, X, Y) + +# define _FP_NANFRAC_S _FP_QNANBIT_S +# define _FP_NANFRAC_D _FP_QNANBIT_D, 0 +# define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0 + +#else /* #if __loongarch_grlen == 32 */ + #define _FP_W_TYPE_SIZE 64 #define _FP_W_TYPE unsigned long #define _FP_WS_TYPE signed long @@ -47,6 +78,8 @@ #define _FP_NANFRAC_D _FP_QNANBIT_D #define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0 +#endif /* #if __loongarch_grlen == 32 */ + #define _FP_NANSIGN_S 0 #define _FP_NANSIGN_D 0 #define _FP_NANSIGN_Q 0 diff --git a/sysdeps/loongarch/start.S b/sysdeps/loongarch/start.S index 72452f5307..4fc1cfe978 100644 --- a/sysdeps/loongarch/start.S +++ b/sysdeps/loongarch/start.S @@ -57,23 +57,39 @@ ENTRY (ENTRY_POINT) /* Terminate call stack by noting ra is undefined. Use a dummy .cfi_label to force starting the FDE. */ .cfi_label .Ldummy - cfi_undefined (1) + cfi_undefined (1) or a5, a0, zero /* rtld_fini */ - la.pcrel a0, t0, main +# LOAD_ADDR (a0, main) +#if defined PIC && !defined SHARED + /* Avoid relocation in static PIE since _start is called before it + is relocated. */ + la.pcrel a0, __wrap_main +#else + LA_GOT (a0, main) +#endif + REG_L a1, sp, 0 ADDI a2, sp, SZREG - /* Adjust $sp for 16-aligned */ - BSTRINS sp, zero, 3, 0 + /* Adjust $sp for 16-bytes aligned */ + REG_ALIGN_ASM (sp, 4) move a3, zero /* used to be init */ move a4, zero /* used to be fini */ or a6, sp, zero /* stack_end */ - la.pcrel ra, t0, __libc_start_main - jirl ra, ra, 0 +# LOAD_ADDR (ra, __libc_start_main) +# jirl ra, ra, 0 +# +# LOAD_ADDR (ra, abort) +# jirl ra, ra, 0 + + CALL (__libc_start_main) + CALL (abort) - la.pcrel ra, t0, abort - jirl ra, ra, 0 +#if defined PIC && !defined SHARED +__wrap_main: + TAIL (main) +#endif END (ENTRY_POINT) diff --git a/sysdeps/loongarch/sys/asm.h b/sysdeps/loongarch/sys/asm.h index afb597a426..3852f82ca7 100644 --- a/sysdeps/loongarch/sys/asm.h +++ b/sysdeps/loongarch/sys/asm.h @@ -22,22 +22,103 @@ #include #include +#define STACK_ALIGN 16 + /* Macros to handle different pointer/register sizes for 32/64-bit code. */ +#if __loongarch_grlen == 64 +#define PTRLOG 3 #define SZREG 8 -#define SZFREG 8 -#define SZVREG 16 -#define SZXREG 32 #define REG_L ld.d #define REG_S st.d #define SRLI srli.d +#define SRAI srai.d #define SLLI slli.d #define ADDI addi.d #define ADD add.d #define SUB sub.d -#define BSTRINS bstrins.d #define LI li.d -#define FREG_L fld.d -#define FREG_S fst.d +#define BSTRINS bstrins.d + +/* Align reg to 2^n. Used in assembly. */ +#define REG_ALIGN_ASM(reg, n) bstrins.d reg, zero, (n-1), 0 + +/* Align reg to 2^n. Used in C. */ +#define REG_ALIGN_C(reg, n) \ + "bstrins.d\t" __STRING(reg) ", $zero, (" __STRING(n) "-1), 0" + +#define LOAD_ADDR(reg, sym) la.pcrel reg, t0, sym + +#define LOAD_LOCAL(reg, sym) \ + pcalau12i reg, %pc_hi20(sym); \ + ld.d reg, reg, %pc_lo12(sym); + +#define LOAD_GLOBAL(reg, sym) \ + la.got reg, sym; \ + ld.d reg, reg, 0; + +#define LA_GOT(reg, sym) la.got reg, t0, sym + +#define CALL(sym) call36 sym +#define TAIL(sym) tail36 t0, sym + +#elif __loongarch_grlen == 32 + +#define PTRLOG 2 +#define SZREG 4 +#define REG_L ld.w +#define REG_S st.w +#define SRLI srli.w +#define SRAI srai.w +#define SLLI slli.w +#define ADDI addi.w +#define ADD add.w +#define SUB sub.w +#define LI li.w +#define BSTRINS bstrins.w + +/* LA32R not have bstrins.w, use srli.w and slli.w on both LA32S and LA32R. */ +#define REG_ALIGN_ASM(reg, n) \ + srli.w reg, reg, n; \ + slli.w reg, reg, n; + +#define REG_ALIGN_C(reg, n) \ + "srli.w\t" __STRING(reg)", " __STRING(reg)", " __STRING(n) "\n\t" \ + "slli.w\t" __STRING(reg)", " __STRING(reg)", " __STRING(n) + +#define LOAD_ADDR(reg, sym) \ + 1: pcaddu12i reg, %pcadd_hi20(sym); \ + addi.w reg, reg, %pcadd_lo12(1b); + +#define LOAD_LOCAL(reg, sym) \ + 1: pcaddu12i reg, %pcadd_hi20(sym); \ + ld.w reg, reg, %pcadd_lo12(1b); + +#define LOAD_GLOBAL(reg, sym) \ + 1: pcaddu12i reg, %got_pcadd_hi20(sym); \ + ld.w reg, reg, %pcadd_lo12(1b); \ + ld.w reg, reg, 0; + +#define LA_GOT(reg, sym) la.got reg, sym + +#define CALL(sym) call30 sym +#define TAIL(sym) tail30 t0, sym + +#else +#error __loongarch_grlen must equal 32 or 64 +#endif + +#if __loongarch_frlen == 64 + #define SZFREG 8 + #define FREG_L fld.d + #define FREG_S fst.d +#elif __loongarch_frlen == 32 + #define SZFREG 4 + #define FREG_L fld.s + #define FREG_S fst.s +#endif + +#define SZVREG 16 +#define SZXREG 32 /* Declare leaf routine. The usage of macro LEAF/ENTRY is as follows: diff --git a/sysdeps/loongarch/tst-gnu2-tls2.h b/sysdeps/loongarch/tst-gnu2-tls2.h index 98a6fb4384..88f1c69a79 100644 --- a/sysdeps/loongarch/tst-gnu2-tls2.h +++ b/sysdeps/loongarch/tst-gnu2-tls2.h @@ -25,17 +25,23 @@ /* The instruction between BEFORE_TLSDESC_CALL and _dl_tlsdesc_dynamic, and the instruction between _dl_tlsdesc_dynamic and AFTER_TLSDESC_CALL, may modified most of the general-purpose register. */ -#define SAVE_REGISTER(src) \ - asm volatile ("st.d $r3, %0" :"=m"(src) :); + +#if LOONGARCH_ABI_GRLEN == 64 +# define SAVE_REGISTER(src) asm volatile ("st.d $r3, %0" :"=m"(src) :); +#elif LOONGARCH_ABI_GRLEN == 32 +# define SAVE_REGISTER(src) asm volatile ("st.w $r3, %0" :"=m"(src) :); +#else +# error LOONGARCH_ABI_GRLEN must equal 32 or 64 +#endif #ifdef __loongarch_soft_float #define BEFORE_TLSDESC_CALL() \ - uint64_t src; \ + long src; \ SAVE_REGISTER (src); #define AFTER_TLSDESC_CALL() \ - uint64_t restore; \ + long restore; \ SAVE_REGISTER (restore); \ if (src != restore) \ abort (); @@ -53,12 +59,12 @@ asm volatile ("movcf2gr %0, $fcc7" :"=r"(src[7])); \ #define LOAD_REGISTER_FCSR() \ - uint64_t src_fcsr = 0x01010101; \ - asm volatile ("li.d $t0, 0x01010101" ::: "$t0"); \ + int src_fcsr = 0x01010101; \ + asm volatile ("li.w $t0, 0x01010101" ::: "$t0"); \ asm volatile ("movgr2fcsr $fcsr0, $t0" :::); #define SAVE_REGISTER_FCSR() \ - uint64_t restore_fcsr; \ + int restore_fcsr; \ asm volatile ("movfcsr2gr %0, $fcsr0" :"=r"(restore_fcsr)); \ if (src_fcsr != restore_fcsr) \ { \ @@ -70,7 +76,7 @@ unsigned long hwcap = getauxval (AT_HWCAP); #define LOAD_REGISTER_FLOAT() \ - for (int i = 0; i < 32; i++) \ + for (int i = 0; i < 24; i++) \ src_float[i] = i + 1; \ asm volatile ("fld.d $f0, %0" ::"m"(src_float[0]) :"$f0"); \ asm volatile ("fld.d $f1, %0" ::"m"(src_float[1]) :"$f1"); \ @@ -96,17 +102,9 @@ asm volatile ("fld.d $f21, %0" ::"m"(src_float[21]) :"$f21"); \ asm volatile ("fld.d $f22, %0" ::"m"(src_float[22]) :"$f22"); \ asm volatile ("fld.d $f23, %0" ::"m"(src_float[23]) :"$f23"); \ - asm volatile ("fld.d $f24, %0" ::"m"(src_float[24]) :"$f24"); \ - asm volatile ("fld.d $f25, %0" ::"m"(src_float[25]) :"$f25"); \ - asm volatile ("fld.d $f26, %0" ::"m"(src_float[26]) :"$f26"); \ - asm volatile ("fld.d $f27, %0" ::"m"(src_float[27]) :"$f27"); \ - asm volatile ("fld.d $f28, %0" ::"m"(src_float[28]) :"$f28"); \ - asm volatile ("fld.d $f29, %0" ::"m"(src_float[29]) :"$f29"); \ - asm volatile ("fld.d $f30, %0" ::"m"(src_float[30]) :"$f30"); \ - asm volatile ("fld.d $f31, %0" ::"m"(src_float[31]) :"$f31"); #define SAVE_REGISTER_FLOAT() \ - double restore_float[32]; \ + double restore_float[24]; \ asm volatile ("fst.d $f0, %0" :"=m"(restore_float[0])); \ asm volatile ("fst.d $f1, %0" :"=m"(restore_float[1])); \ asm volatile ("fst.d $f2, %0" :"=m"(restore_float[2])); \ @@ -131,14 +129,6 @@ asm volatile ("fst.d $f21, %0" :"=m"(restore_float[21])); \ asm volatile ("fst.d $f22, %0" :"=m"(restore_float[22])); \ asm volatile ("fst.d $f23, %0" :"=m"(restore_float[23])); \ - asm volatile ("fst.d $f24, %0" :"=m"(restore_float[24])); \ - asm volatile ("fst.d $f25, %0" :"=m"(restore_float[25])); \ - asm volatile ("fst.d $f26, %0" :"=m"(restore_float[26])); \ - asm volatile ("fst.d $f27, %0" :"=m"(restore_float[27])); \ - asm volatile ("fst.d $f28, %0" :"=m"(restore_float[28])); \ - asm volatile ("fst.d $f29, %0" :"=m"(restore_float[29])); \ - asm volatile ("fst.d $f30, %0" :"=m"(restore_float[30])); \ - asm volatile ("fst.d $f31, %0" :"=m"(restore_float[31])); \ if (memcmp (src_float, restore_float, sizeof (src_float)) != 0) \ { \ printf ("Float registers compare failed!\n"); \ @@ -325,9 +315,9 @@ #endif #define BEFORE_TLSDESC_CALL() \ - uint64_t src; \ - double src_float[32]; \ - uint64_t src_fcc[8]; \ + long src; \ + double src_float[24]; \ + int src_fcc[8]; \ SAVE_REGISTER (src); \ \ if (hwcap & HWCAP_LOONGARCH_LASX) \ @@ -349,8 +339,8 @@ #define AFTER_TLSDESC_CALL() \ - uint64_t restore; \ - uint64_t restore_fcc[8]; \ + long restore; \ + int restore_fcc[8]; \ \ SAVE_REGISTER (restore); \ if (src != restore) \ From patchwork Thu Mar 12 01:41:59 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 131558 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id DC9034B920D6 for ; Thu, 12 Mar 2026 01:47:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DC9034B920D6 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 5F73C4B920D2 for ; Thu, 12 Mar 2026 01:46:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5F73C4B920D2 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5F73C4B920D2 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773279992; cv=none; b=rO8KW2x0kSTdY7eDfmwCb3dpE+SroC6NCT+bFH6LYBKY+r/KejCpKbn4NkIQd4OVwwsuSk39QIc+nUHGBGbFXF03uAEh939THphdtijgMmrawC/O2KG/2Fro+hzSz4BqBn5WOqcHOGIAwgZ3YyAg5aI6y9pFY5fQI73F+iQUPhs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773279992; c=relaxed/simple; bh=EOs+83FkWoOVGyAcbpNVxoRW+B74ykKerhyhoMuRu78=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=wcB799B25YQXcVWOGTP/WTk/NMZeU4NxypFgFsK5QQIprqp2A7uIMUnYtNz1gS5OE1aLFNodVPIFwzTisLJEghlCehNkwUVfbT7tANZBwGPwv96awRao1jv5Ab+EGmgPB+9JxUMDl+U3ZrrAlbXHN3J5JC/UiSRDvUv1uG/cvCU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5F73C4B920D2 Received: from loongson.cn (unknown [10.2.6.7]) by gateway (Coremail) with SMTP id _____8CxYcD1GrJpCy4aAA--.17555S3; Thu, 12 Mar 2026 09:46:29 +0800 (CST) Received: from amd9754.. (unknown [10.2.6.7]) by front1 (Coremail) with SMTP id qMiowJCx2+DwGrJptYBTAA--.28244S2; Thu, 12 Mar 2026 09:46:24 +0800 (CST) From: mengqinggang To: libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, fweimer@redhat.com, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, hejinyang@loongson.cn, mengqinggang@loongson.cn Subject: [PATCH v6 2/6] LoongArch: Add support for LA32 in sysdeps/loongarch/fpu Date: Thu, 12 Mar 2026 09:41:59 +0800 Message-Id: <20260312014203.1916933-3-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260312014203.1916933-1-mengqinggang@loongson.cn> References: <20260312014203.1916933-1-mengqinggang@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: qMiowJCx2+DwGrJptYBTAA--.28244S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org Move the loongarch64 implementation to sysdeps/loongarch/lp64/fpu. --- sysdeps/loongarch/fpu/math-use-builtins-llrint.h | 2 +- sysdeps/loongarch/fpu/math-use-builtins-logb.h | 2 +- sysdeps/loongarch/fpu/math-use-builtins-lrint.h | 2 +- sysdeps/loongarch/fpu/math-use-builtins-rint.h | 2 +- sysdeps/loongarch/fpu/math-use-builtins-sqrt.h | 10 ++++++++-- sysdeps/loongarch/lp64/fpu/Implies | 1 + sysdeps/loongarch/{ => lp64}/fpu/e_scalb.c | 0 sysdeps/loongarch/{ => lp64}/fpu/e_scalbf.c | 0 sysdeps/loongarch/{ => lp64}/fpu/s_scalbn.c | 0 sysdeps/loongarch/{ => lp64}/fpu/s_scalbnf.c | 0 sysdeps/loongarch/{ => lp64}/fpu/w_ilogb-impl.h | 0 sysdeps/loongarch/{ => lp64}/fpu/w_ilogbf-impl.h | 0 12 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 sysdeps/loongarch/lp64/fpu/Implies rename sysdeps/loongarch/{ => lp64}/fpu/e_scalb.c (100%) rename sysdeps/loongarch/{ => lp64}/fpu/e_scalbf.c (100%) rename sysdeps/loongarch/{ => lp64}/fpu/s_scalbn.c (100%) rename sysdeps/loongarch/{ => lp64}/fpu/s_scalbnf.c (100%) rename sysdeps/loongarch/{ => lp64}/fpu/w_ilogb-impl.h (100%) rename sysdeps/loongarch/{ => lp64}/fpu/w_ilogbf-impl.h (100%) diff --git a/sysdeps/loongarch/fpu/math-use-builtins-llrint.h b/sysdeps/loongarch/fpu/math-use-builtins-llrint.h index bee5910b09..82f89d41f9 100644 --- a/sysdeps/loongarch/fpu/math-use-builtins-llrint.h +++ b/sysdeps/loongarch/fpu/math-use-builtins-llrint.h @@ -1,4 +1,4 @@ -#if __GNUC_PREREQ (13, 0) +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64 # define USE_LLRINT_BUILTIN 1 # define USE_LLRINTF_BUILTIN 1 #else diff --git a/sysdeps/loongarch/fpu/math-use-builtins-logb.h b/sysdeps/loongarch/fpu/math-use-builtins-logb.h index b1c3f30dc4..d8ca3d1aa2 100644 --- a/sysdeps/loongarch/fpu/math-use-builtins-logb.h +++ b/sysdeps/loongarch/fpu/math-use-builtins-logb.h @@ -1,4 +1,4 @@ -#if __GNUC_PREREQ (13, 0) +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64 # define USE_LOGB_BUILTIN 1 # define USE_LOGBF_BUILTIN 1 #else diff --git a/sysdeps/loongarch/fpu/math-use-builtins-lrint.h b/sysdeps/loongarch/fpu/math-use-builtins-lrint.h index 7df8aac81f..80345fdf3f 100644 --- a/sysdeps/loongarch/fpu/math-use-builtins-lrint.h +++ b/sysdeps/loongarch/fpu/math-use-builtins-lrint.h @@ -1,4 +1,4 @@ -#if __GNUC_PREREQ (13, 0) +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64 # define USE_LRINT_BUILTIN 1 # define USE_LRINTF_BUILTIN 1 #else diff --git a/sysdeps/loongarch/fpu/math-use-builtins-rint.h b/sysdeps/loongarch/fpu/math-use-builtins-rint.h index cd91482f5f..73ce3e45bc 100644 --- a/sysdeps/loongarch/fpu/math-use-builtins-rint.h +++ b/sysdeps/loongarch/fpu/math-use-builtins-rint.h @@ -1,4 +1,4 @@ -#if __GNUC_PREREQ (13, 0) +#if __GNUC_PREREQ (13, 0) && __loongarch_grlen == 64 # define USE_RINT_BUILTIN 1 # define USE_RINTF_BUILTIN 1 #else diff --git a/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h b/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h index e94c915ba6..f031bd7536 100644 --- a/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h +++ b/sysdeps/loongarch/fpu/math-use-builtins-sqrt.h @@ -1,4 +1,10 @@ -#define USE_SQRT_BUILTIN 1 -#define USE_SQRTF_BUILTIN 1 +#if __loongarch_grlen == 64 + #define USE_SQRT_BUILTIN 1 + #define USE_SQRTF_BUILTIN 1 +#else + #define USE_SQRT_BUILTIN 0 + #define USE_SQRTF_BUILTIN 0 +#endif + #define USE_SQRTL_BUILTIN 0 #define USE_SQRTF128_BUILTIN 0 diff --git a/sysdeps/loongarch/lp64/fpu/Implies b/sysdeps/loongarch/lp64/fpu/Implies new file mode 100644 index 0000000000..fccda41bd0 --- /dev/null +++ b/sysdeps/loongarch/lp64/fpu/Implies @@ -0,0 +1 @@ +loongarch/lp64/fpu diff --git a/sysdeps/loongarch/fpu/e_scalb.c b/sysdeps/loongarch/lp64/fpu/e_scalb.c similarity index 100% rename from sysdeps/loongarch/fpu/e_scalb.c rename to sysdeps/loongarch/lp64/fpu/e_scalb.c diff --git a/sysdeps/loongarch/fpu/e_scalbf.c b/sysdeps/loongarch/lp64/fpu/e_scalbf.c similarity index 100% rename from sysdeps/loongarch/fpu/e_scalbf.c rename to sysdeps/loongarch/lp64/fpu/e_scalbf.c diff --git a/sysdeps/loongarch/fpu/s_scalbn.c b/sysdeps/loongarch/lp64/fpu/s_scalbn.c similarity index 100% rename from sysdeps/loongarch/fpu/s_scalbn.c rename to sysdeps/loongarch/lp64/fpu/s_scalbn.c diff --git a/sysdeps/loongarch/fpu/s_scalbnf.c b/sysdeps/loongarch/lp64/fpu/s_scalbnf.c similarity index 100% rename from sysdeps/loongarch/fpu/s_scalbnf.c rename to sysdeps/loongarch/lp64/fpu/s_scalbnf.c diff --git a/sysdeps/loongarch/fpu/w_ilogb-impl.h b/sysdeps/loongarch/lp64/fpu/w_ilogb-impl.h similarity index 100% rename from sysdeps/loongarch/fpu/w_ilogb-impl.h rename to sysdeps/loongarch/lp64/fpu/w_ilogb-impl.h diff --git a/sysdeps/loongarch/fpu/w_ilogbf-impl.h b/sysdeps/loongarch/lp64/fpu/w_ilogbf-impl.h similarity index 100% rename from sysdeps/loongarch/fpu/w_ilogbf-impl.h rename to sysdeps/loongarch/lp64/fpu/w_ilogbf-impl.h From patchwork Thu Mar 12 01:42:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 131556 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 3A2174BB58E7 for ; Thu, 12 Mar 2026 01:47:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3A2174BB58E7 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id D64F24B920DE for ; Thu, 12 Mar 2026 01:46:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D64F24B920DE Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D64F24B920DE Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773280001; cv=none; b=DrMXX7sv+bpZUus1C7PJY9q8jR7zHrHhubj7+GOIVJ7sMtIBbLJDsVg0mt0Fqwjc1+j0C9b8YEbLE7Z47lq4iDfsPeeNivyPw4qbjz5Po+FldNQqcluOog1jb2EcilmQb9yIaC+VfEt122Hpmq8P9kgs1ZGqUfT8uKcIeWDVxHA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773280001; c=relaxed/simple; bh=GS3sSPny2RKcEEoFUxdiJg25PTESMdiT+MhhJ46S77Q=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=gT/wotz0c7VYCfiSUT0muIAXhhZl6jwZGrUdkWNF0kPJcZsZsCy+NMTE9Tpdy8PreIf/oVTM2591djZWx56j8Ezval7+63CnqDB16XCkMm/N25//OaeOoGHLosgyv6wGCezt+WO7UDxuGPqlhEqrarDiPCT/bYyiPe5URswLS0k= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D64F24B920DE Received: from loongson.cn (unknown [10.2.6.7]) by gateway (Coremail) with SMTP id _____8Cx58H2GrJpEi4aAA--.64484S3; Thu, 12 Mar 2026 09:46:30 +0800 (CST) Received: from amd9754.. (unknown [10.2.6.7]) by front1 (Coremail) with SMTP id qMiowJDxC8L2GrJpuoBTAA--.26476S2; Thu, 12 Mar 2026 09:46:30 +0800 (CST) From: mengqinggang To: libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, fweimer@redhat.com, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, hejinyang@loongson.cn, mengqinggang@loongson.cn Subject: [PATCH v6 3/6] LoongArch: Add new file for LA32 in sysdeps/loongarch/ilp32 Date: Thu, 12 Mar 2026 09:42:00 +0800 Message-Id: <20260312014203.1916933-4-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260312014203.1916933-1-mengqinggang@loongson.cn> References: <20260312014203.1916933-1-mengqinggang@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: qMiowJDxC8L2GrJpuoBTAA--.26476S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org --- sysdeps/loongarch/ilp32/Implies-after | 1 + 1 file changed, 1 insertion(+) create mode 100644 sysdeps/loongarch/ilp32/Implies-after diff --git a/sysdeps/loongarch/ilp32/Implies-after b/sysdeps/loongarch/ilp32/Implies-after new file mode 100644 index 0000000000..39a34c5f57 --- /dev/null +++ b/sysdeps/loongarch/ilp32/Implies-after @@ -0,0 +1 @@ +wordsize-32 From patchwork Thu Mar 12 01:42:01 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 131560 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id C73914BB58E6 for ; Thu, 12 Mar 2026 01:48:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C73914BB58E6 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 30B154BB5907 for ; Thu, 12 Mar 2026 01:46:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 30B154BB5907 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 30B154BB5907 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773280000; cv=none; b=Wp1s5yyU5MGV9syb/5BKkAxbrlxcjcLdqtF1co9HypExX/UkA4s/za+13OV8ZiO+07eH2Tmra/37ihGWQe5x5Gaw+LacvyxlRLXJyx4pdSeT0hNouV+xoJka8pDRUR+D//BgAh4Ulqqjr+vHFmNK9fQKyHAlw4iDOTZWhGWBxFw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773280000; c=relaxed/simple; bh=9lQO+/TMyn/g4c8Pnza4DNABL+kIX0KxO05OXft23/c=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=dSPKuzPhtuCs8Y++t2Ph7LYNubo6U2A0AC06oiRwBVUL6UOcIzIfm7+SQJBaafSsJNZDbEjI2/Jvu/hOPOTWr0MsHRWrinjZBw0j2IE1xCOyT++cOh/iTK3B52j3LOfsi/NaCQ/NJ2L8w3fB+ygqx8qBfoQIP8Js0uRal1MRsDs= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 30B154BB5907 Received: from loongson.cn (unknown [10.2.6.7]) by gateway (Coremail) with SMTP id _____8Cx76v6GrJpGi4aAA--.17506S3; Thu, 12 Mar 2026 09:46:34 +0800 (CST) Received: from amd9754.. (unknown [10.2.6.7]) by front1 (Coremail) with SMTP id qMiowJCx_8L3GrJpvIBTAA--.28289S2; Thu, 12 Mar 2026 09:46:31 +0800 (CST) From: mengqinggang To: libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, fweimer@redhat.com, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, hejinyang@loongson.cn, mengqinggang@loongson.cn Subject: [PATCH v6 4/6] LoongArch: Add support for LA32 in sysdeps/unix/sysv/linux/loongarch Date: Thu, 12 Mar 2026 09:42:01 +0800 Message-Id: <20260312014203.1916933-5-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260312014203.1916933-1-mengqinggang@loongson.cn> References: <20260312014203.1916933-1-mengqinggang@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: qMiowJCx_8L3GrJpvIBTAA--.28289S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org --- sysdeps/unix/sysv/linux/loongarch/Makefile | 4 +- sysdeps/unix/sysv/linux/loongarch/clone.S | 10 ++--- sysdeps/unix/sysv/linux/loongarch/clone3.S | 8 ++-- sysdeps/unix/sysv/linux/loongarch/configure | 44 +++++++++++++++++++ .../unix/sysv/linux/loongarch/configure.ac | 12 +++++ .../unix/sysv/linux/loongarch/getcontext.S | 12 ++--- .../unix/sysv/linux/loongarch/gettimeofday.c | 9 ++-- .../unix/sysv/linux/loongarch/ldd-rewrite.sed | 2 +- .../linux/loongarch/{ => lp64}/arch-syscall.h | 0 .../unix/sysv/linux/loongarch/pointer_guard.h | 18 ++------ .../unix/sysv/linux/loongarch/readelflib.c | 33 +++++++++++--- .../unix/sysv/linux/loongarch/setcontext.S | 24 +++++----- .../unix/sysv/linux/loongarch/shlib-versions | 10 ++++- .../unix/sysv/linux/loongarch/swapcontext.S | 28 ++++++------ .../sysv/linux/loongarch/syscall_cancel.S | 2 +- sysdeps/unix/sysv/linux/loongarch/sysdep.S | 8 ++-- sysdeps/unix/sysv/linux/loongarch/sysdep.h | 30 ++++++++++--- .../sysv/linux/loongarch/ucontext-macros.h | 6 ++- sysdeps/unix/sysv/linux/loongarch/vfork.S | 6 +-- 19 files changed, 181 insertions(+), 85 deletions(-) rename sysdeps/unix/sysv/linux/loongarch/{ => lp64}/arch-syscall.h (100%) diff --git a/sysdeps/unix/sysv/linux/loongarch/Makefile b/sysdeps/unix/sysv/linux/loongarch/Makefile index c84a1762ed..0d5f087862 100644 --- a/sysdeps/unix/sysv/linux/loongarch/Makefile +++ b/sysdeps/unix/sysv/linux/loongarch/Makefile @@ -2,11 +2,13 @@ ifeq ($(subdir),stdlib) gen-as-const-headers += ucontext_i.sym endif -abi-variants := lp64s lp64d +abi-variants := ilp32s ilp32d lp64s lp64d ifeq (,$(filter $(default-abi),$(abi-variants))) $(error Unknown ABI $(default-abi), must be one of $(abi-variants)) endif +abi-ilp32s-condition := __WORDSIZE == 32 && defined __loongarch_soft_float +abi-ilp32d-condition := __WORDSIZE == 32 && defined __loongarch_double_float abi-lp64s-condition := __WORDSIZE == 64 && defined __loongarch_soft_float abi-lp64d-condition := __WORDSIZE == 64 && defined __loongarch_double_float diff --git a/sysdeps/unix/sysv/linux/loongarch/clone.S b/sysdeps/unix/sysv/linux/loongarch/clone.S index fcf8316a43..e815df6a24 100644 --- a/sysdeps/unix/sysv/linux/loongarch/clone.S +++ b/sysdeps/unix/sysv/linux/loongarch/clone.S @@ -33,13 +33,13 @@ ENTRY (__clone) /* Align stack to 16. */ - BSTRINS a1, zero, 3, 0 + REG_ALIGN_ASM (a1, 4) /* Sanity check arguments. */ - beqz a0, L (invalid) /* No NULL function pointers. */ - beqz a1, L (invalid) /* No NULL stack pointers. */ + beq a0, zero, L (invalid) /* No NULL function pointers. */ + beq a1, zero, L (invalid) /* No NULL stack pointers. */ - ADDI a1, a1, -16 /* Reserve argument save space. */ + ADDI a1, a1, -STACK_ALIGN /* Reserve argument save space. */ REG_S a0, a1, 0 /* Save function pointer. */ REG_S a3, a1, SZREG /* Save argument pointer. */ @@ -54,7 +54,7 @@ ENTRY (__clone) syscall 0 blt a0, zero ,L (error) - beqz a0,L (thread_start) + beq a0, zero, L (thread_start) /* Successful return from the parent. */ ret diff --git a/sysdeps/unix/sysv/linux/loongarch/clone3.S b/sysdeps/unix/sysv/linux/loongarch/clone3.S index cfd5e3b817..a8f71487fa 100644 --- a/sysdeps/unix/sysv/linux/loongarch/clone3.S +++ b/sysdeps/unix/sysv/linux/loongarch/clone3.S @@ -33,15 +33,15 @@ ENTRY (__clone3) /* Sanity check arguments. */ - beqz a0, L (invalid) /* No NULL cl_args pointer. */ - beqz a2, L (invalid) /* No NULL function pointer. */ + beq a0, zero, L (invalid) /* No NULL cl_args pointer. */ + beq a2, zero, L (invalid) /* No NULL function pointer. */ /* Do the system call. */ LI a7, __NR_clone3 syscall 0 blt a0, zero ,L (error) - beqz a0, L (thread_start3) + beq a0, zero, L (thread_start3) /* Successful return from the parent. */ ret @@ -67,7 +67,7 @@ L (thread_start3): cfi_undefined (1) /* Align stack to 16. */ - BSTRINS sp, zero, 3, 0 + REG_ALIGN_ASM (sp, 4) /* Set up arguments for the function call. */ move a0, a3 /* Argument. */ diff --git a/sysdeps/unix/sysv/linux/loongarch/configure b/sysdeps/unix/sysv/linux/loongarch/configure index 914943f914..8ac792f6cf 100644 --- a/sysdeps/unix/sysv/linux/loongarch/configure +++ b/sysdeps/unix/sysv/linux/loongarch/configure @@ -152,10 +152,26 @@ then : fi rm -rf conftest* +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__ + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP_TRADITIONAL "4 4 4" >/dev/null 2>&1 +then : + libc_cv_loongarch_int_abi=ilp32 +fi +rm -rf conftest* + if test $libc_cv_loongarch_int_abi = no; then as_fn_error $? "Unable to determine integer ABI" "$LINENO" 5 fi +if test $libc_cv_loongarch_int_abi = ilp32; then + arch_minimum_kernel=6.19.0 +fi + libc_cv_loongarch_float_abi=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -193,6 +209,34 @@ config_vars="$config_vars default-abi = $libc_cv_loongarch_int_abi$libc_cv_loongarch_float_abi" case $libc_cv_loongarch_int_abi$libc_cv_loongarch_float_abi in +ilp32s) + test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir='/lib32/sf' + libc_cv_rtlddir='/lib32' + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib32/sf'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac + ;; +ilp32d) + test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir='/lib32' + libc_cv_rtlddir='/lib32' + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib32'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac + ;; lp64s) test -n "$libc_cv_slibdir" || case "$prefix" in diff --git a/sysdeps/unix/sysv/linux/loongarch/configure.ac b/sysdeps/unix/sysv/linux/loongarch/configure.ac index 04e9150a9b..35d5acfbb8 100644 --- a/sysdeps/unix/sysv/linux/loongarch/configure.ac +++ b/sysdeps/unix/sysv/linux/loongarch/configure.ac @@ -7,10 +7,16 @@ arch_minimum_kernel=5.19.0 libc_cv_loongarch_int_abi=no AC_EGREP_CPP(4 8 8, [__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__ ], libc_cv_loongarch_int_abi=lp64) +AC_EGREP_CPP(4 4 4, [__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__ + ], libc_cv_loongarch_int_abi=ilp32) if test $libc_cv_loongarch_int_abi = no; then AC_MSG_ERROR([Unable to determine integer ABI]) fi +if test $libc_cv_loongarch_int_abi = ilp32; then + arch_minimum_kernel=6.19.0 +fi + libc_cv_loongarch_float_abi=no AC_EGREP_CPP(yes, [#ifdef __loongarch_double_float yes @@ -27,6 +33,12 @@ fi LIBC_CONFIG_VAR([default-abi], [$libc_cv_loongarch_int_abi$libc_cv_loongarch_float_abi]) case $libc_cv_loongarch_int_abi$libc_cv_loongarch_float_abi in +ilp32s) + LIBC_SLIBDIR_RTLDDIR([lib32/sf], [lib32]) + ;; +ilp32d) + LIBC_SLIBDIR_RTLDDIR([lib32], [lib32]) + ;; lp64s) LIBC_SLIBDIR_RTLDDIR([lib64/sf], [lib64]) ;; diff --git a/sysdeps/unix/sysv/linux/loongarch/getcontext.S b/sysdeps/unix/sysv/linux/loongarch/getcontext.S index f012e059d7..120738b7c9 100644 --- a/sysdeps/unix/sysv/linux/loongarch/getcontext.S +++ b/sysdeps/unix/sysv/linux/loongarch/getcontext.S @@ -36,16 +36,16 @@ LEAF (__getcontext) SAVE_INT_REG (s6, 29, a0) SAVE_INT_REG (s7, 30, a0) SAVE_INT_REG (s8, 31, a0) - st.d ra, a0, MCONTEXT_PC + REG_S ra, a0, MCONTEXT_PC /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ - li.d a3, _NSIG8 - li.d a2, UCONTEXT_SIGMASK - add.d a2, a2, a0 + LI a3, _NSIG8 + LI a2, UCONTEXT_SIGMASK + ADD a2, a2, a0 ori a1, zero,0 - li.d a0, SIG_BLOCK + LI a0, SIG_BLOCK - li.d a7, SYS_ify (rt_sigprocmask) + LI a7, SYS_ify (rt_sigprocmask) syscall 0 blt a0, zero, 99f diff --git a/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c b/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c index 514142d340..adb80fc975 100644 --- a/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c @@ -17,6 +17,9 @@ License along with the GNU C Library. If not, see . */ - -#define USE_IFUNC_GETTIMEOFDAY -#include +#ifdef __loongarch64 +# define USE_IFUNC_GETTIMEOFDAY +# include +#else +# include +#endif diff --git a/sysdeps/unix/sysv/linux/loongarch/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/loongarch/ldd-rewrite.sed index cdbe5c3dc5..a868370aca 100644 --- a/sysdeps/unix/sysv/linux/loongarch/ldd-rewrite.sed +++ b/sysdeps/unix/sysv/linux/loongarch/ldd-rewrite.sed @@ -1 +1 @@ -s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|32\)\(/ld-linux-loongarch-\)\(lp\|ilp\)\(64\|32\)\(d\|s\)\(\.so\.[0-9.]*\)[[:blank:]]*$_\1"\264\4lp64d\8 \264\4lp64s\8"_ +s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|32\)\(/ld-linux-loongarch-\)\(lp\|ilp\)\(64\|32\)\(d\|s\)\(\.so\.[0-9.]*\)[[:blank:]]*$_\1"\264\4lp64d\8 \264\4lp64s\8 \232\4ilp32d\8 \232\4ilp32s\8"_ diff --git a/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h b/sysdeps/unix/sysv/linux/loongarch/lp64/arch-syscall.h similarity index 100% rename from sysdeps/unix/sysv/linux/loongarch/arch-syscall.h rename to sysdeps/unix/sysv/linux/loongarch/lp64/arch-syscall.h diff --git a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h index a28da43c81..69150c0211 100644 --- a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h +++ b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h @@ -19,26 +19,16 @@ #ifndef POINTER_GUARD_H #define POINTER_GUARD_H -/* Load a got-relative EXPR into register G. */ -#define LD_GLOBAL(G, EXPR) \ - la.global G, EXPR; \ - REG_L G, G, 0; - -/* Load a pc-relative EXPR into register G. */ -#define LD_PCREL(G, EXPR) \ - pcalau12i G, %pc_hi20(EXPR); \ - REG_L G, G, %pc_lo12(EXPR); - #if (IS_IN (rtld) \ || (!defined SHARED && (IS_IN (libc) \ || IS_IN (libpthread)))) #ifdef __ASSEMBLER__ #define PTR_MANGLE(dst, src, guard) \ - LD_PCREL (guard, __pointer_chk_guard_local); \ + LOAD_LOCAL (guard, __pointer_chk_guard_local); \ PTR_MANGLE2 (dst, src, guard); #define PTR_DEMANGLE(dst, src, guard) \ - LD_PCREL (guard, __pointer_chk_guard_local); \ + LOAD_LOCAL (guard, __pointer_chk_guard_local); \ PTR_DEMANGLE2 (dst, src, guard); /* Use PTR_MANGLE2 for efficiency if guard is already loaded. */ #define PTR_MANGLE2(dst, src, guard) \ @@ -57,10 +47,10 @@ extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; #ifdef __ASSEMBLER__ #define PTR_MANGLE(dst, src, guard) \ - LD_GLOBAL (guard, __pointer_chk_guard); \ + LOAD_GLOBAL (guard, __pointer_chk_guard); \ PTR_MANGLE2 (dst, src, guard); #define PTR_DEMANGLE(dst, src, guard) \ - LD_GLOBAL (guard, __pointer_chk_guard); \ + LOAD_GLOBAL (guard, __pointer_chk_guard); \ PTR_DEMANGLE2 (dst, src, guard); /* Use PTR_MANGLE2 for efficiency if guard is already loaded. */ #define PTR_MANGLE2(dst, src, guard) \ diff --git a/sysdeps/unix/sysv/linux/loongarch/readelflib.c b/sysdeps/unix/sysv/linux/loongarch/readelflib.c index 8045ba2bc1..7186f6859d 100644 --- a/sysdeps/unix/sysv/linux/loongarch/readelflib.c +++ b/sysdeps/unix/sysv/linux/loongarch/readelflib.c @@ -17,6 +17,9 @@ . */ +int process_elf32_file (const char *file_name, const char *lib, + int *flag, unsigned int *isa_level, char **soname, + void *file_contents, size_t file_length); int process_elf64_file (const char *file_name, const char *lib, int *flag, unsigned int *isa_level, char **soname, void *file_contents, size_t file_length); @@ -31,6 +34,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, size_t file_length) { ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; + Elf32_Ehdr *elf32_header = (Elf32_Ehdr *) elf_header; Elf64_Ehdr *elf64_header = (Elf64_Ehdr *) elf_header; int ret; long flags; @@ -38,15 +42,24 @@ process_elf_file (const char *file_name, const char *lib, int *flag, /* LoongArch libraries are always libc.so.6+. */ *flag = FLAG_ELF_LIBC6; - ret = process_elf64_file (file_name, lib, flag, isa_level, soname, + if (elf_header->e_ident[EI_CLASS] == ELFCLASS32) + { + ret = process_elf32_file (file_name, lib, flag, isa_level, soname, + file_contents, file_length); + flags = elf32_header->e_flags & ~EF_LARCH_OBJABI_V1; + } + else + { + ret = process_elf64_file (file_name, lib, flag, isa_level, soname, file_contents, file_length); - /* The EF_LARCH_OBJABI_V1 flag indicate which set of static relocations - the object might use and it only considered during static linking, - it does not reflect in runtime relocations. However some binutils - version might set it on dynamic shared object, so clear it to avoid - see the SO as unsupported. */ - flags = elf64_header->e_flags & ~EF_LARCH_OBJABI_V1; + /* The EF_LARCH_OBJABI_V1 flag indicate which set of static relocations + the object might use and it only considered during static linking, + it does not reflect in runtime relocations. However some binutils + version might set it on dynamic shared object, so clear it to avoid + see the SO as unsupported. */ + flags = elf64_header->e_flags & ~EF_LARCH_OBJABI_V1; + } /* LoongArch linkers encode the floating point ABI as part of the ELF headers. */ switch (flags & SUPPORTED_ELF_FLAGS) @@ -70,6 +83,12 @@ process_elf_file (const char *file_name, const char *lib, int *flag, } #undef __ELF_NATIVE_CLASS +#undef process_elf_file +#define process_elf_file process_elf32_file +#define __ELF_NATIVE_CLASS 32 +#include "elf/readelflib.c" +#undef __ELF_NATIVE_CLASS + #undef process_elf_file #define process_elf_file process_elf64_file #define __ELF_NATIVE_CLASS 64 diff --git a/sysdeps/unix/sysv/linux/loongarch/setcontext.S b/sysdeps/unix/sysv/linux/loongarch/setcontext.S index e7189c0c41..269aca8026 100644 --- a/sysdeps/unix/sysv/linux/loongarch/setcontext.S +++ b/sysdeps/unix/sysv/linux/loongarch/setcontext.S @@ -30,22 +30,22 @@ .text LEAF (__setcontext) - addi.d sp, sp, -16 - st.d a0, sp, 0 /* Save ucp to stack */ + ADDI sp, sp, -16 + REG_S a0, sp, 0 /* Save ucp to stack */ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */ - li.d a3, _NSIG8 - li.d a2, 0 - li.d a1, UCONTEXT_SIGMASK - add.d a1, a1, a0 - li.d a0, SIG_SETMASK + LI a3, _NSIG8 + LI a2, 0 + LI a1, UCONTEXT_SIGMASK + ADD a1, a1, a0 + LI a0, SIG_SETMASK - li.d a7, SYS_ify (rt_sigprocmask) + LI a7, SYS_ify (rt_sigprocmask) syscall 0 blt a0, $r0, 99f - ld.d t0, sp, 0 /* Load ucp to t0 */ + REG_L t0, sp, 0 /* Load ucp to t0 */ cfi_def_cfa (12, 0) /* Note the contents of argument registers will be random @@ -72,11 +72,11 @@ LEAF (__setcontext) RESTORE_INT_REG(s7, 30, t0) RESTORE_INT_REG(s8, 31, t0) - ld.d t1, t0, MCONTEXT_PC + REG_L t1, t0, MCONTEXT_PC jirl $r0,t1,0 99: - addi.d sp, sp, 16 + ADDI sp, sp, 16 b __syscall_error PSEUDO_END (__setcontext) @@ -92,7 +92,7 @@ LEAF (__start_context) /* Invoke subsequent context if present, else exit(0). */ ori a0, s2, 0 - beqz s2, 1f + beq s2, zero, 1f bl __setcontext 1: b HIDDEN_JUMPTARGET(exit) diff --git a/sysdeps/unix/sysv/linux/loongarch/shlib-versions b/sysdeps/unix/sysv/linux/loongarch/shlib-versions index 5f40e7f5ec..7fb62abd4f 100644 --- a/sysdeps/unix/sysv/linux/loongarch/shlib-versions +++ b/sysdeps/unix/sysv/linux/loongarch/shlib-versions @@ -1,8 +1,14 @@ +%if LOONGARCH_ABI_GRLEN == 32 && LOONGARCH_ABI_FRLEN == 64 +DEFAULT GLIBC_2.44 +ld=ld-linux-loongarch-ilp32d.so.1 +%elif LOONGARCH_ABI_GRLEN == 32 && LOONGARCH_ABI_FRLEN == 0 +DEFAULT GLIBC_2.44 +ld=ld-linux-loongarch-ilp32s.so.1 +%elif LOONGARCH_ABI_GRLEN == 64 && LOONGARCH_ABI_FRLEN == 64 DEFAULT GLIBC_2.36 - -%if LOONGARCH_ABI_GRLEN == 64 && LOONGARCH_ABI_FRLEN == 64 ld=ld-linux-loongarch-lp64d.so.1 %elif LOONGARCH_ABI_GRLEN == 64 && LOONGARCH_ABI_FRLEN == 0 +DEFAULT GLIBC_2.36 ld=ld-linux-loongarch-lp64s.so.1 %else %error cannot determine ABI diff --git a/sysdeps/unix/sysv/linux/loongarch/swapcontext.S b/sysdeps/unix/sysv/linux/loongarch/swapcontext.S index 905fc33a2e..afa31e250b 100644 --- a/sysdeps/unix/sysv/linux/loongarch/swapcontext.S +++ b/sysdeps/unix/sysv/linux/loongarch/swapcontext.S @@ -22,8 +22,8 @@ LEAF (__swapcontext) ori a2, sp, 0 /* Save sp to a2 */ - addi.d sp, sp, -16 - st.d a1, sp, 0 + ADDI sp, sp, -16 + REG_S a1, sp, 0 ori t0, a1, 0 SAVE_INT_REG (ra, 1, a0) @@ -41,22 +41,22 @@ LEAF (__swapcontext) SAVE_INT_REG (s7, 30, a0) SAVE_INT_REG (s8, 31, a0) - st.d ra, a0, MCONTEXT_PC + REG_S ra, a0, MCONTEXT_PC /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */ - li.d a3, _NSIG8 - li.d a2, UCONTEXT_SIGMASK - add.d a2, a2, a0 - li.d a1, UCONTEXT_SIGMASK - add.d a1, a1, t0 - li.d a0, SIG_SETMASK - - li.d a7, SYS_ify (rt_sigprocmask) + LI a3, _NSIG8 + LI a2, UCONTEXT_SIGMASK + ADD a2, a2, a0 + LI a1, UCONTEXT_SIGMASK + ADD a1, a1, t0 + LI a0, SIG_SETMASK + + LI a7, SYS_ify (rt_sigprocmask) syscall 0 blt a0, zero, 99f - ld.d t0, sp, 0 /* Load a1 to t0 */ + REG_L t0, sp, 0 /* Load a1 to t0 */ /* Note the contents of argument registers will be random unless makecontext() has been called. */ @@ -82,12 +82,12 @@ LEAF (__swapcontext) RESTORE_INT_REG (s7, 30, t0) RESTORE_INT_REG (s8, 31, t0) - ld.d t1, t0, MCONTEXT_PC + REG_L t1, t0, MCONTEXT_PC jirl $r0, t1, 0 99: - addi.d sp, sp, 16 + ADDI sp, sp, 16 b __syscall_error PSEUDO_END (__swapcontext) diff --git a/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S b/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S index 387e455f74..3559c6210e 100644 --- a/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S +++ b/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S @@ -28,7 +28,7 @@ __syscall_cancel_arch_start: __syscall_do_cancel() */ ld.w t0, a0, 0 andi t0, t0, TCB_CANCELED_BITMASK - bnez t0, 1f + bne t0, zero, 1f /* Issue a 6 argument syscall. */ move t1, a1 diff --git a/sysdeps/unix/sysv/linux/loongarch/sysdep.S b/sysdeps/unix/sysv/linux/loongarch/sysdep.S index e2f7c1d7f6..d809808de9 100644 --- a/sysdeps/unix/sysv/linux/loongarch/sysdep.S +++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.S @@ -34,20 +34,20 @@ ENTRY (__syscall_set_errno) /* We got here because a0 < 0, but only codes in the range [-4095, -1] represent errors. Otherwise, just return the result normally. */ - li.d t1, -4096 + LI t1, -4096 bgeu t1, a0, L (out) sub.w a0, zero, a0 #if RTLD_PRIVATE_ERRNO la t1, rtld_errno #elif defined(__PIC__) la.tls.ie t1, errno - add.d t1, tp, t1 + ADD t1, tp, t1 #else la.tls.le t1, errno - add.d t1, tp, t1 + ADD t1, tp, t1 #endif st.w a0, t1, 0 - li.d a0, -1 + LI a0, -1 L (out): ret END (__syscall_set_errno) diff --git a/sysdeps/unix/sysv/linux/loongarch/sysdep.h b/sysdeps/unix/sysv/linux/loongarch/sysdep.h index ac5b36f8c0..66afe496d9 100644 --- a/sysdeps/unix/sysv/linux/loongarch/sysdep.h +++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.h @@ -34,9 +34,9 @@ #undef PSEUDO #define PSEUDO(name, syscall_name, args) \ ENTRY (name); \ - li.d a7, SYS_ify (syscall_name); \ + LI a7, SYS_ify (syscall_name); \ syscall 0; \ - li.d a7, -4096; \ + LI a7, -4096; \ bltu a7, a0, .Lsyscall_error##name; #undef PSEUDO_END @@ -52,16 +52,16 @@ .Lsyscall_error##name : la t0, rtld_errno; \ sub.w a0, zero, a0; \ st.w a0, t0, 0; \ - li.d a0, -1; + LI a0, -1; #else #define SYSCALL_ERROR_HANDLER(name) \ .Lsyscall_error##name : la.tls.ie t0, errno; \ - add.d t0, tp, t0; \ + ADD t0, tp, t0; \ sub.w a0, zero, a0; \ st.w a0, t0, 0; \ - li.d a0, -1; + LI a0, -1; #endif #else @@ -74,7 +74,7 @@ #undef PSEUDO_NEORRNO #define PSEUDO_NOERRNO(name, syscall_name, args) \ ENTRY (name); \ - li.d a7, SYS_ify (syscall_name); \ + LI a7, SYS_ify (syscall_name); \ syscall 0; #undef PSEUDO_END_NOERRNO @@ -85,11 +85,17 @@ /* Performs a system call, returning the error code. */ #undef PSEUDO_ERRVAL +#if __loongarch_grlen == 64 #define PSEUDO_ERRVAL(name, syscall_name, args) \ PSEUDO_NOERRNO (name, syscall_name, args); \ slli.d a0, a0, 32; \ srai.d a0, a0, 32; /* sign_ext */ \ sub.d a0, zero, a0; +#else +#define PSEUDO_ERRVAL(name, syscall_name, args) \ + PSEUDO_NOERRNO (name, syscall_name, args); \ + sub.w a0, zero, a0; +#endif #undef PSEUDO_END_ERRVAL #define PSEUDO_END_ERRVAL(name) END (name); @@ -109,6 +115,18 @@ #undef SYS_ify #define SYS_ify(syscall_name) __NR_##syscall_name +#if __WORDSIZE == 32 +/* Workarounds for generic code needing to handle 64-bit time_t. */ +#define __NR_clock_getres __NR_clock_getres_time64 +#define __NR_futex __NR_futex_time64 +#define __NR_ppoll __NR_ppoll_time64 +#define __NR_pselect6 __NR_pselect6_time64 +#define __NR_recvmmsg __NR_recvmmsg_time64 +#define __NR_rt_sigtimedwait __NR_rt_sigtimedwait_time64 +#define __NR_semtimedop __NR_semtimedop_time64 +#define __NR_utimensat __NR_utimensat_time64 +#endif /* __WORDSIZE == 32 */ + #ifndef __ASSEMBLER__ #define VDSO_NAME "LINUX_5.10" diff --git a/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h b/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h index 496d0d85e8..c5e0527300 100644 --- a/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h +++ b/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h @@ -23,10 +23,12 @@ #include #include "ucontext_i.h" +/* mcontext_t.__gregs is unsigned long long on la32 and la64, + use 8 instead of SZREG. */ #define SAVE_INT_REG(name, num, base) \ - REG_S name, base, ((num) *SZREG + MCONTEXT_GREGS) + REG_S name, base, ((num) * 8 + MCONTEXT_GREGS) #define RESTORE_INT_REG(name, num, base) \ - REG_L name, base, ((num) *SZREG + MCONTEXT_GREGS) + REG_L name, base, ((num) * 8 + MCONTEXT_GREGS) #endif /* _LINUX_LOONGARCH_UCONTEXT_MACROS_H */ diff --git a/sysdeps/unix/sysv/linux/loongarch/vfork.S b/sysdeps/unix/sysv/linux/loongarch/vfork.S index ab903f09d2..b450eac1f5 100644 --- a/sysdeps/unix/sysv/linux/loongarch/vfork.S +++ b/sysdeps/unix/sysv/linux/loongarch/vfork.S @@ -28,11 +28,11 @@ ENTRY (__vfork) - li.d a0, 0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */ - add.d a1, zero, sp + LI a0, 0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */ + ADD a1, zero, sp /* Do the system call. */ - li.d a7, __NR_clone + LI a7, __NR_clone syscall 0 blt a0, zero ,L (error) From patchwork Thu Mar 12 01:42:02 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 131557 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id E1E634B9208D for ; Thu, 12 Mar 2026 01:47:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E1E634B9208D X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id A85E64BB593C for ; Thu, 12 Mar 2026 01:46:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A85E64BB593C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A85E64BB593C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773279999; cv=none; b=TMa4OEvXxADv/vuQh1X3JwZWNkk8jhnq+3kLLOoPAlPJyN4gx7gDcJEcFMV1zNGbkYhp43v25B6tvOCvdhDNCZO5vAy7EybR9tqKA0tyjjLx3+kA678kuKbxbDd1KYSLyVaGXVIV5K2LeSAW+l00AOze2HfSxbyvd6SbxJjvnPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773279999; c=relaxed/simple; bh=3QyRNsQz3ZosQ0YNAzopAS0xukLE/+ks99glOaEZNQ8=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=ffqsCOGSTlgH9ZNQyqvkpEqDLzLCsSnP/i35O7Wa9A5FLKZf8sPGKmFWVMGpQtX9LKPQL7FugFWE31jMf5I1tp6ua/HXkrIUfw6Hu7PpF7s/Blavxc+m0XnEwTpyYK7yaZ6yM8Vnb2Oal9iVWv2FThFq9k/5wnF0rL/ZndhlqIQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A85E64BB593C Received: from loongson.cn (unknown [10.2.6.7]) by gateway (Coremail) with SMTP id _____8Bx08D8GrJpIS4aAA--.17739S3; Thu, 12 Mar 2026 09:46:36 +0800 (CST) Received: from amd9754.. (unknown [10.2.6.7]) by front1 (Coremail) with SMTP id qMiowJDxTML6GrJpvoBTAA--.25617S2; Thu, 12 Mar 2026 09:46:34 +0800 (CST) From: mengqinggang To: libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, fweimer@redhat.com, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, hejinyang@loongson.cn, mengqinggang@loongson.cn Subject: [PATCH v6 5/6] LoongArch: Add new files for LA32 in sysdeps/unix/sysv/linux/loongarch/ilp32 Date: Thu, 12 Mar 2026 09:42:02 +0800 Message-Id: <20260312014203.1916933-6-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260312014203.1916933-1-mengqinggang@loongson.cn> References: <20260312014203.1916933-1-mengqinggang@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: qMiowJDxTML6GrJpvoBTAA--.25617S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org Add implies, abilist, c++-types and syscall files. --- .../unix/sysv/linux/loongarch/ilp32/Implies | 2 + .../sysv/linux/loongarch/ilp32/arch-syscall.h | 314 +++ .../sysv/linux/loongarch/ilp32/c++-types.data | 67 + .../sysv/linux/loongarch/ilp32/ld.abilist | 8 + .../loongarch/ilp32/libBrokenLocale.abilist | 1 + .../sysv/linux/loongarch/ilp32/libc.abilist | 2289 +++++++++++++++++ .../loongarch/ilp32/libc_malloc_debug.abilist | 28 + .../sysv/linux/loongarch/ilp32/libm.abilist | 1166 +++++++++ .../linux/loongarch/ilp32/libpthread.abilist | 0 .../linux/loongarch/ilp32/libresolv.abilist | 55 + .../sysv/linux/loongarch/ilp32/librt.abilist | 0 .../loongarch/ilp32/libthread_db.abilist | 40 + 12 files changed, 3970 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/Implies create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/arch-syscall.h create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/c++-types.data create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/ld.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libBrokenLocale.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libc_malloc_debug.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libm.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libpthread.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libresolv.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/librt.abilist create mode 100644 sysdeps/unix/sysv/linux/loongarch/ilp32/libthread_db.abilist diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/Implies b/sysdeps/unix/sysv/linux/loongarch/ilp32/Implies new file mode 100644 index 0000000000..fbafe37c1f --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/Implies @@ -0,0 +1,2 @@ +unix/sysv/linux/loongarch +unix/sysv/linux/wordsize-32 diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/arch-syscall.h b/sysdeps/unix/sysv/linux/loongarch/ilp32/arch-syscall.h new file mode 100644 index 0000000000..34a92b7bde --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/arch-syscall.h @@ -0,0 +1,314 @@ +/* AUTOGENERATED by update-syscall-lists.py. */ +#define __NR_accept 202 +#define __NR_accept4 242 +#define __NR_acct 89 +#define __NR_add_key 217 +#define __NR_bind 200 +#define __NR_bpf 280 +#define __NR_brk 214 +#define __NR_cachestat 451 +#define __NR_capget 90 +#define __NR_capset 91 +#define __NR_chdir 49 +#define __NR_chroot 51 +#define __NR_clock_adjtime64 405 +#define __NR_clock_getres_time64 406 +#define __NR_clock_gettime64 403 +#define __NR_clock_nanosleep_time64 407 +#define __NR_clock_settime64 404 +#define __NR_clone 220 +#define __NR_clone3 435 +#define __NR_close 57 +#define __NR_close_range 436 +#define __NR_connect 203 +#define __NR_copy_file_range 285 +#define __NR_delete_module 106 +#define __NR_dup 23 +#define __NR_dup3 24 +#define __NR_epoll_create1 20 +#define __NR_epoll_ctl 21 +#define __NR_epoll_pwait 22 +#define __NR_epoll_pwait2 441 +#define __NR_eventfd2 19 +#define __NR_execve 221 +#define __NR_execveat 281 +#define __NR_exit 93 +#define __NR_exit_group 94 +#define __NR_faccessat 48 +#define __NR_faccessat2 439 +#define __NR_fadvise64_64 223 +#define __NR_fallocate 47 +#define __NR_fanotify_init 262 +#define __NR_fanotify_mark 263 +#define __NR_fchdir 50 +#define __NR_fchmod 52 +#define __NR_fchmodat 53 +#define __NR_fchmodat2 452 +#define __NR_fchown 55 +#define __NR_fchownat 54 +#define __NR_fcntl64 25 +#define __NR_fdatasync 83 +#define __NR_fgetxattr 10 +#define __NR_file_getattr 468 +#define __NR_file_setattr 469 +#define __NR_finit_module 273 +#define __NR_flistxattr 13 +#define __NR_flock 32 +#define __NR_fremovexattr 16 +#define __NR_fsconfig 431 +#define __NR_fsetxattr 7 +#define __NR_fsmount 432 +#define __NR_fsopen 430 +#define __NR_fspick 433 +#define __NR_fstatfs64 44 +#define __NR_fsync 82 +#define __NR_ftruncate64 46 +#define __NR_futex_requeue 456 +#define __NR_futex_time64 422 +#define __NR_futex_wait 455 +#define __NR_futex_waitv 449 +#define __NR_futex_wake 454 +#define __NR_get_mempolicy 236 +#define __NR_get_robust_list 100 +#define __NR_getcpu 168 +#define __NR_getcwd 17 +#define __NR_getdents64 61 +#define __NR_getegid 177 +#define __NR_geteuid 175 +#define __NR_getgid 176 +#define __NR_getgroups 158 +#define __NR_getitimer 102 +#define __NR_getpeername 205 +#define __NR_getpgid 155 +#define __NR_getpid 172 +#define __NR_getppid 173 +#define __NR_getpriority 141 +#define __NR_getrandom 278 +#define __NR_getresgid 150 +#define __NR_getresuid 148 +#define __NR_getrusage 165 +#define __NR_getsid 156 +#define __NR_getsockname 204 +#define __NR_getsockopt 209 +#define __NR_gettid 178 +#define __NR_getuid 174 +#define __NR_getxattr 8 +#define __NR_getxattrat 464 +#define __NR_init_module 105 +#define __NR_inotify_add_watch 27 +#define __NR_inotify_init1 26 +#define __NR_inotify_rm_watch 28 +#define __NR_io_cancel 3 +#define __NR_io_destroy 1 +#define __NR_io_pgetevents_time64 416 +#define __NR_io_setup 0 +#define __NR_io_submit 2 +#define __NR_io_uring_enter 426 +#define __NR_io_uring_register 427 +#define __NR_io_uring_setup 425 +#define __NR_ioctl 29 +#define __NR_ioprio_get 31 +#define __NR_ioprio_set 30 +#define __NR_kcmp 272 +#define __NR_kexec_file_load 294 +#define __NR_kexec_load 104 +#define __NR_keyctl 219 +#define __NR_kill 129 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_restrict_self 446 +#define __NR_lgetxattr 9 +#define __NR_linkat 37 +#define __NR_listen 201 +#define __NR_listmount 458 +#define __NR_listxattr 11 +#define __NR_listxattrat 465 +#define __NR_llistxattr 12 +#define __NR_llseek 62 +#define __NR_lookup_dcookie 18 +#define __NR_lremovexattr 15 +#define __NR_lsetxattr 6 +#define __NR_lsm_get_self_attr 459 +#define __NR_lsm_list_modules 461 +#define __NR_lsm_set_self_attr 460 +#define __NR_madvise 233 +#define __NR_map_shadow_stack 453 +#define __NR_mbind 235 +#define __NR_membarrier 283 +#define __NR_memfd_create 279 +#define __NR_migrate_pages 238 +#define __NR_mincore 232 +#define __NR_mkdirat 34 +#define __NR_mknodat 33 +#define __NR_mlock 228 +#define __NR_mlock2 284 +#define __NR_mlockall 230 +#define __NR_mmap2 222 +#define __NR_mount 40 +#define __NR_mount_setattr 442 +#define __NR_move_mount 429 +#define __NR_move_pages 239 +#define __NR_mprotect 226 +#define __NR_mq_getsetattr 185 +#define __NR_mq_notify 184 +#define __NR_mq_open 180 +#define __NR_mq_timedreceive_time64 419 +#define __NR_mq_timedsend_time64 418 +#define __NR_mq_unlink 181 +#define __NR_mremap 216 +#define __NR_mseal 462 +#define __NR_msgctl 187 +#define __NR_msgget 186 +#define __NR_msgrcv 188 +#define __NR_msgsnd 189 +#define __NR_msync 227 +#define __NR_munlock 229 +#define __NR_munlockall 231 +#define __NR_munmap 215 +#define __NR_name_to_handle_at 264 +#define __NR_nfsservctl 42 +#define __NR_open_by_handle_at 265 +#define __NR_open_tree 428 +#define __NR_open_tree_attr 467 +#define __NR_openat 56 +#define __NR_openat2 437 +#define __NR_perf_event_open 241 +#define __NR_personality 92 +#define __NR_pidfd_getfd 438 +#define __NR_pidfd_open 434 +#define __NR_pidfd_send_signal 424 +#define __NR_pipe2 59 +#define __NR_pivot_root 41 +#define __NR_pkey_alloc 289 +#define __NR_pkey_free 290 +#define __NR_pkey_mprotect 288 +#define __NR_ppoll_time64 414 +#define __NR_prctl 167 +#define __NR_pread64 67 +#define __NR_preadv 69 +#define __NR_preadv2 286 +#define __NR_prlimit64 261 +#define __NR_process_madvise 440 +#define __NR_process_mrelease 448 +#define __NR_process_vm_readv 270 +#define __NR_process_vm_writev 271 +#define __NR_pselect6_time64 413 +#define __NR_ptrace 117 +#define __NR_pwrite64 68 +#define __NR_pwritev 70 +#define __NR_pwritev2 287 +#define __NR_quotactl 60 +#define __NR_quotactl_fd 443 +#define __NR_read 63 +#define __NR_readahead 213 +#define __NR_readlinkat 78 +#define __NR_readv 65 +#define __NR_reboot 142 +#define __NR_recvfrom 207 +#define __NR_recvmmsg_time64 417 +#define __NR_recvmsg 212 +#define __NR_remap_file_pages 234 +#define __NR_removexattr 14 +#define __NR_removexattrat 466 +#define __NR_renameat2 276 +#define __NR_request_key 218 +#define __NR_restart_syscall 128 +#define __NR_rseq 293 +#define __NR_rt_sigaction 134 +#define __NR_rt_sigpending 136 +#define __NR_rt_sigprocmask 135 +#define __NR_rt_sigqueueinfo 138 +#define __NR_rt_sigreturn 139 +#define __NR_rt_sigsuspend 133 +#define __NR_rt_sigtimedwait_time64 421 +#define __NR_rt_tgsigqueueinfo 240 +#define __NR_sched_get_priority_max 125 +#define __NR_sched_get_priority_min 126 +#define __NR_sched_getaffinity 123 +#define __NR_sched_getattr 275 +#define __NR_sched_getparam 121 +#define __NR_sched_getscheduler 120 +#define __NR_sched_rr_get_interval_time64 423 +#define __NR_sched_setaffinity 122 +#define __NR_sched_setattr 274 +#define __NR_sched_setparam 118 +#define __NR_sched_setscheduler 119 +#define __NR_sched_yield 124 +#define __NR_seccomp 277 +#define __NR_semctl 191 +#define __NR_semget 190 +#define __NR_semop 193 +#define __NR_semtimedop_time64 420 +#define __NR_sendfile64 71 +#define __NR_sendmmsg 269 +#define __NR_sendmsg 211 +#define __NR_sendto 206 +#define __NR_set_mempolicy 237 +#define __NR_set_mempolicy_home_node 450 +#define __NR_set_robust_list 99 +#define __NR_set_tid_address 96 +#define __NR_setdomainname 162 +#define __NR_setfsgid 152 +#define __NR_setfsuid 151 +#define __NR_setgid 144 +#define __NR_setgroups 159 +#define __NR_sethostname 161 +#define __NR_setitimer 103 +#define __NR_setns 268 +#define __NR_setpgid 154 +#define __NR_setpriority 140 +#define __NR_setregid 143 +#define __NR_setresgid 149 +#define __NR_setresuid 147 +#define __NR_setreuid 145 +#define __NR_setsid 157 +#define __NR_setsockopt 208 +#define __NR_setuid 146 +#define __NR_setxattr 5 +#define __NR_setxattrat 463 +#define __NR_shmat 196 +#define __NR_shmctl 195 +#define __NR_shmdt 197 +#define __NR_shmget 194 +#define __NR_shutdown 210 +#define __NR_sigaltstack 132 +#define __NR_signalfd4 74 +#define __NR_socket 198 +#define __NR_socketpair 199 +#define __NR_splice 76 +#define __NR_statfs64 43 +#define __NR_statmount 457 +#define __NR_statx 291 +#define __NR_swapoff 225 +#define __NR_swapon 224 +#define __NR_symlinkat 36 +#define __NR_sync 81 +#define __NR_sync_file_range 84 +#define __NR_syncfs 267 +#define __NR_sysinfo 179 +#define __NR_syslog 116 +#define __NR_tee 77 +#define __NR_tgkill 131 +#define __NR_timer_create 107 +#define __NR_timer_delete 111 +#define __NR_timer_getoverrun 109 +#define __NR_timer_gettime64 408 +#define __NR_timer_settime64 409 +#define __NR_timerfd_create 85 +#define __NR_timerfd_gettime64 410 +#define __NR_timerfd_settime64 411 +#define __NR_times 153 +#define __NR_tkill 130 +#define __NR_truncate64 45 +#define __NR_umask 166 +#define __NR_umount2 39 +#define __NR_uname 160 +#define __NR_unlinkat 35 +#define __NR_unshare 97 +#define __NR_userfaultfd 282 +#define __NR_utimensat_time64 412 +#define __NR_vhangup 58 +#define __NR_vmsplice 75 +#define __NR_waitid 95 +#define __NR_write 64 +#define __NR_writev 66 diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/c++-types.data b/sysdeps/unix/sysv/linux/loongarch/ilp32/c++-types.data new file mode 100644 index 0000000000..0fb0143ae7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:x +blkcnt_t:x +blksize_t:i +caddr_t:Pc +clockid_t:i +clock_t:l +daddr_t:i +dev_t:y +fd_mask:l +fsblkcnt64_t:y +fsblkcnt_t:y +fsfilcnt64_t:y +fsfilcnt_t:y +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:y +ino_t:y +int16_t:s +int32_t:i +int64_t:x +int8_t:a +intptr_t:i +key_t:i +loff_t:x +mode_t:j +nlink_t:j +off64_t:x +off_t:x +pid_t:i +pthread_attr_t:14pthread_attr_t +pthread_barrier_t:17pthread_barrier_t +pthread_barrierattr_t:21pthread_barrierattr_t +pthread_cond_t:14pthread_cond_t +pthread_condattr_t:18pthread_condattr_t +pthread_key_t:j +pthread_mutex_t:15pthread_mutex_t +pthread_mutexattr_t:19pthread_mutexattr_t +pthread_once_t:i +pthread_rwlock_t:16pthread_rwlock_t +pthread_rwlockattr_t:20pthread_rwlockattr_t +pthread_spinlock_t:i +pthread_t:m +quad_t:x +register_t:i +rlim64_t:y +rlim_t:y +sigset_t:10__sigset_t +size_t:j +socklen_t:j +ssize_t:i +suseconds_t:x +time_t:x +u_char:h +uid_t:j +uint:j +u_int:j +u_int16_t:t +u_int32_t:j +u_int64_t:y +u_int8_t:h +ulong:m +u_long:m +u_quad_t:y +useconds_t:j +ushort:t +u_short:t diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/ld.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/ld.abilist new file mode 100644 index 0000000000..d2a9286dc9 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/ld.abilist @@ -0,0 +1,8 @@ +GLIBC_2.44 __libc_stack_end D 0x4 +GLIBC_2.44 __rseq_flags D 0x4 +GLIBC_2.44 __rseq_offset D 0x4 +GLIBC_2.44 __rseq_size D 0x4 +GLIBC_2.44 __stack_chk_guard D 0x4 +GLIBC_2.44 __tls_get_addr F +GLIBC_2.44 _dl_mcount F +GLIBC_2.44 _r_debug D 0x14 diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libBrokenLocale.abilist new file mode 100644 index 0000000000..3f19151c59 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libBrokenLocale.abilist @@ -0,0 +1 @@ +GLIBC_2.44 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist new file mode 100644 index 0000000000..7c6d7055c3 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc.abilist @@ -0,0 +1,2289 @@ +GLIBC_2.44 _Exit F +GLIBC_2.44 _Fork F +GLIBC_2.44 _IO_2_1_stderr_ D 0xa0 +GLIBC_2.44 _IO_2_1_stdin_ D 0xa0 +GLIBC_2.44 _IO_2_1_stdout_ D 0xa0 +GLIBC_2.44 _IO_adjust_column F +GLIBC_2.44 _IO_adjust_wcolumn F +GLIBC_2.44 _IO_default_doallocate F +GLIBC_2.44 _IO_default_finish F +GLIBC_2.44 _IO_default_pbackfail F +GLIBC_2.44 _IO_default_uflow F +GLIBC_2.44 _IO_default_xsgetn F +GLIBC_2.44 _IO_default_xsputn F +GLIBC_2.44 _IO_do_write F +GLIBC_2.44 _IO_doallocbuf F +GLIBC_2.44 _IO_fclose F +GLIBC_2.44 _IO_fdopen F +GLIBC_2.44 _IO_feof F +GLIBC_2.44 _IO_ferror F +GLIBC_2.44 _IO_fflush F +GLIBC_2.44 _IO_fgetpos F +GLIBC_2.44 _IO_fgetpos64 F +GLIBC_2.44 _IO_fgets F +GLIBC_2.44 _IO_file_attach F +GLIBC_2.44 _IO_file_close F +GLIBC_2.44 _IO_file_close_it F +GLIBC_2.44 _IO_file_doallocate F +GLIBC_2.44 _IO_file_finish F +GLIBC_2.44 _IO_file_fopen F +GLIBC_2.44 _IO_file_init F +GLIBC_2.44 _IO_file_jumps D 0x54 +GLIBC_2.44 _IO_file_open F +GLIBC_2.44 _IO_file_overflow F +GLIBC_2.44 _IO_file_read F +GLIBC_2.44 _IO_file_seek F +GLIBC_2.44 _IO_file_seekoff F +GLIBC_2.44 _IO_file_setbuf F +GLIBC_2.44 _IO_file_stat F +GLIBC_2.44 _IO_file_sync F +GLIBC_2.44 _IO_file_underflow F +GLIBC_2.44 _IO_file_write F +GLIBC_2.44 _IO_file_xsputn F +GLIBC_2.44 _IO_flockfile F +GLIBC_2.44 _IO_flush_all F +GLIBC_2.44 _IO_flush_all_linebuffered F +GLIBC_2.44 _IO_fopen F +GLIBC_2.44 _IO_fprintf F +GLIBC_2.44 _IO_fputs F +GLIBC_2.44 _IO_fread F +GLIBC_2.44 _IO_free_backup_area F +GLIBC_2.44 _IO_free_wbackup_area F +GLIBC_2.44 _IO_fsetpos F +GLIBC_2.44 _IO_fsetpos64 F +GLIBC_2.44 _IO_ftell F +GLIBC_2.44 _IO_ftrylockfile F +GLIBC_2.44 _IO_funlockfile F +GLIBC_2.44 _IO_fwrite F +GLIBC_2.44 _IO_getc F +GLIBC_2.44 _IO_getline F +GLIBC_2.44 _IO_getline_info F +GLIBC_2.44 _IO_gets F +GLIBC_2.44 _IO_init F +GLIBC_2.44 _IO_init_marker F +GLIBC_2.44 _IO_init_wmarker F +GLIBC_2.44 _IO_iter_begin F +GLIBC_2.44 _IO_iter_end F +GLIBC_2.44 _IO_iter_file F +GLIBC_2.44 _IO_iter_next F +GLIBC_2.44 _IO_least_wmarker F +GLIBC_2.44 _IO_link_in F +GLIBC_2.44 _IO_list_all D 0x4 +GLIBC_2.44 _IO_list_lock F +GLIBC_2.44 _IO_list_resetlock F +GLIBC_2.44 _IO_list_unlock F +GLIBC_2.44 _IO_marker_delta F +GLIBC_2.44 _IO_marker_difference F +GLIBC_2.44 _IO_padn F +GLIBC_2.44 _IO_peekc_locked F +GLIBC_2.44 _IO_popen F +GLIBC_2.44 _IO_printf F +GLIBC_2.44 _IO_proc_close F +GLIBC_2.44 _IO_proc_open F +GLIBC_2.44 _IO_putc F +GLIBC_2.44 _IO_puts F +GLIBC_2.44 _IO_remove_marker F +GLIBC_2.44 _IO_seekmark F +GLIBC_2.44 _IO_seekoff F +GLIBC_2.44 _IO_seekpos F +GLIBC_2.44 _IO_seekwmark F +GLIBC_2.44 _IO_setb F +GLIBC_2.44 _IO_setbuffer F +GLIBC_2.44 _IO_setvbuf F +GLIBC_2.44 _IO_sgetn F +GLIBC_2.44 _IO_sprintf F +GLIBC_2.44 _IO_sputbackc F +GLIBC_2.44 _IO_sputbackwc F +GLIBC_2.44 _IO_sscanf F +GLIBC_2.44 _IO_str_init_readonly F +GLIBC_2.44 _IO_str_init_static F +GLIBC_2.44 _IO_str_overflow F +GLIBC_2.44 _IO_str_pbackfail F +GLIBC_2.44 _IO_str_seekoff F +GLIBC_2.44 _IO_str_underflow F +GLIBC_2.44 _IO_sungetc F +GLIBC_2.44 _IO_sungetwc F +GLIBC_2.44 _IO_switch_to_get_mode F +GLIBC_2.44 _IO_switch_to_main_wget_area F +GLIBC_2.44 _IO_switch_to_wbackup_area F +GLIBC_2.44 _IO_switch_to_wget_mode F +GLIBC_2.44 _IO_un_link F +GLIBC_2.44 _IO_ungetc F +GLIBC_2.44 _IO_unsave_markers F +GLIBC_2.44 _IO_unsave_wmarkers F +GLIBC_2.44 _IO_vfprintf F +GLIBC_2.44 _IO_vsprintf F +GLIBC_2.44 _IO_wdefault_doallocate F +GLIBC_2.44 _IO_wdefault_finish F +GLIBC_2.44 _IO_wdefault_pbackfail F +GLIBC_2.44 _IO_wdefault_uflow F +GLIBC_2.44 _IO_wdefault_xsgetn F +GLIBC_2.44 _IO_wdefault_xsputn F +GLIBC_2.44 _IO_wdo_write F +GLIBC_2.44 _IO_wdoallocbuf F +GLIBC_2.44 _IO_wfile_jumps D 0x54 +GLIBC_2.44 _IO_wfile_overflow F +GLIBC_2.44 _IO_wfile_seekoff F +GLIBC_2.44 _IO_wfile_sync F +GLIBC_2.44 _IO_wfile_underflow F +GLIBC_2.44 _IO_wfile_xsputn F +GLIBC_2.44 _IO_wmarker_delta F +GLIBC_2.44 _IO_wsetb F +GLIBC_2.44 __adjtimex F +GLIBC_2.44 __argz_count F +GLIBC_2.44 __argz_next F +GLIBC_2.44 __argz_stringify F +GLIBC_2.44 __asprintf F +GLIBC_2.44 __asprintf_chk F +GLIBC_2.44 __assert F +GLIBC_2.44 __assert_fail F +GLIBC_2.44 __assert_perror_fail F +GLIBC_2.44 __backtrace F +GLIBC_2.44 __backtrace_symbols F +GLIBC_2.44 __backtrace_symbols_fd F +GLIBC_2.44 __bsd_getpgrp F +GLIBC_2.44 __bzero F +GLIBC_2.44 __check_rhosts_file D 0x4 +GLIBC_2.44 __chk_fail F +GLIBC_2.44 __clone F +GLIBC_2.44 __close F +GLIBC_2.44 __cmsg_nxthdr F +GLIBC_2.44 __confstr_chk F +GLIBC_2.44 __connect F +GLIBC_2.44 __ctype_b_loc F +GLIBC_2.44 __ctype_get_mb_cur_max F +GLIBC_2.44 __ctype_tolower_loc F +GLIBC_2.44 __ctype_toupper_loc F +GLIBC_2.44 __curbrk D 0x4 +GLIBC_2.44 __cxa_at_quick_exit F +GLIBC_2.44 __cxa_atexit F +GLIBC_2.44 __cxa_finalize F +GLIBC_2.44 __cxa_thread_atexit_impl F +GLIBC_2.44 __cyg_profile_func_enter F +GLIBC_2.44 __cyg_profile_func_exit F +GLIBC_2.44 __daylight D 0x4 +GLIBC_2.44 __dcgettext F +GLIBC_2.44 __dgettext F +GLIBC_2.44 __dprintf_chk F +GLIBC_2.44 __dup2 F +GLIBC_2.44 __duplocale F +GLIBC_2.44 __endmntent F +GLIBC_2.44 __environ D 0x4 +GLIBC_2.44 __errno_location F +GLIBC_2.44 __explicit_bzero_chk F +GLIBC_2.44 __fbufsize F +GLIBC_2.44 __fcntl F +GLIBC_2.44 __fdelt_chk F +GLIBC_2.44 __fdelt_warn F +GLIBC_2.44 __ffs F +GLIBC_2.44 __fgets_chk F +GLIBC_2.44 __fgets_unlocked_chk F +GLIBC_2.44 __fgetws_chk F +GLIBC_2.44 __fgetws_unlocked_chk F +GLIBC_2.44 __finite F +GLIBC_2.44 __finitef F +GLIBC_2.44 __finitel F +GLIBC_2.44 __flbf F +GLIBC_2.44 __fork F +GLIBC_2.44 __fpending F +GLIBC_2.44 __fprintf_chk F +GLIBC_2.44 __fpu_control D 0x4 +GLIBC_2.44 __fpurge F +GLIBC_2.44 __fread_chk F +GLIBC_2.44 __fread_unlocked_chk F +GLIBC_2.44 __freadable F +GLIBC_2.44 __freading F +GLIBC_2.44 __freelocale F +GLIBC_2.44 __fsetlocking F +GLIBC_2.44 __fwprintf_chk F +GLIBC_2.44 __fwritable F +GLIBC_2.44 __fwriting F +GLIBC_2.44 __getauxval F +GLIBC_2.44 __getcwd_chk F +GLIBC_2.44 __getdelim F +GLIBC_2.44 __getdomainname_chk F +GLIBC_2.44 __getgroups_chk F +GLIBC_2.44 __gethostname_chk F +GLIBC_2.44 __getlogin_r_chk F +GLIBC_2.44 __getmntent_r F +GLIBC_2.44 __getpagesize F +GLIBC_2.44 __getpgid F +GLIBC_2.44 __getpid F +GLIBC_2.44 __gets_chk F +GLIBC_2.44 __gettimeofday F +GLIBC_2.44 __getwd_chk F +GLIBC_2.44 __gmtime_r F +GLIBC_2.44 __h_errno_location F +GLIBC_2.44 __inet_ntop_chk F +GLIBC_2.44 __inet_pton_chk F +GLIBC_2.44 __isalnum_l F +GLIBC_2.44 __isalpha_l F +GLIBC_2.44 __isascii_l F +GLIBC_2.44 __isblank_l F +GLIBC_2.44 __iscntrl_l F +GLIBC_2.44 __isctype F +GLIBC_2.44 __isdigit_l F +GLIBC_2.44 __isgraph_l F +GLIBC_2.44 __isinf F +GLIBC_2.44 __isinff F +GLIBC_2.44 __isinfl F +GLIBC_2.44 __islower_l F +GLIBC_2.44 __isnan F +GLIBC_2.44 __isnanf F +GLIBC_2.44 __isnanl F +GLIBC_2.44 __isoc23_fscanf F +GLIBC_2.44 __isoc23_fwscanf F +GLIBC_2.44 __isoc23_scanf F +GLIBC_2.44 __isoc23_sscanf F +GLIBC_2.44 __isoc23_strtoimax F +GLIBC_2.44 __isoc23_strtol F +GLIBC_2.44 __isoc23_strtol_l F +GLIBC_2.44 __isoc23_strtoll F +GLIBC_2.44 __isoc23_strtoll_l F +GLIBC_2.44 __isoc23_strtoul F +GLIBC_2.44 __isoc23_strtoul_l F +GLIBC_2.44 __isoc23_strtoull F +GLIBC_2.44 __isoc23_strtoull_l F +GLIBC_2.44 __isoc23_strtoumax F +GLIBC_2.44 __isoc23_swscanf F +GLIBC_2.44 __isoc23_vfscanf F +GLIBC_2.44 __isoc23_vfwscanf F +GLIBC_2.44 __isoc23_vscanf F +GLIBC_2.44 __isoc23_vsscanf F +GLIBC_2.44 __isoc23_vswscanf F +GLIBC_2.44 __isoc23_vwscanf F +GLIBC_2.44 __isoc23_wcstoimax F +GLIBC_2.44 __isoc23_wcstol F +GLIBC_2.44 __isoc23_wcstol_l F +GLIBC_2.44 __isoc23_wcstoll F +GLIBC_2.44 __isoc23_wcstoll_l F +GLIBC_2.44 __isoc23_wcstoul F +GLIBC_2.44 __isoc23_wcstoul_l F +GLIBC_2.44 __isoc23_wcstoull F +GLIBC_2.44 __isoc23_wcstoull_l F +GLIBC_2.44 __isoc23_wcstoumax F +GLIBC_2.44 __isoc23_wscanf F +GLIBC_2.44 __isoc99_fscanf F +GLIBC_2.44 __isoc99_fwscanf F +GLIBC_2.44 __isoc99_scanf F +GLIBC_2.44 __isoc99_sscanf F +GLIBC_2.44 __isoc99_swscanf F +GLIBC_2.44 __isoc99_vfscanf F +GLIBC_2.44 __isoc99_vfwscanf F +GLIBC_2.44 __isoc99_vscanf F +GLIBC_2.44 __isoc99_vsscanf F +GLIBC_2.44 __isoc99_vswscanf F +GLIBC_2.44 __isoc99_vwscanf F +GLIBC_2.44 __isoc99_wscanf F +GLIBC_2.44 __isprint_l F +GLIBC_2.44 __ispunct_l F +GLIBC_2.44 __isspace_l F +GLIBC_2.44 __isupper_l F +GLIBC_2.44 __iswalnum_l F +GLIBC_2.44 __iswalpha_l F +GLIBC_2.44 __iswblank_l F +GLIBC_2.44 __iswcntrl_l F +GLIBC_2.44 __iswctype F +GLIBC_2.44 __iswctype_l F +GLIBC_2.44 __iswdigit_l F +GLIBC_2.44 __iswgraph_l F +GLIBC_2.44 __iswlower_l F +GLIBC_2.44 __iswprint_l F +GLIBC_2.44 __iswpunct_l F +GLIBC_2.44 __iswspace_l F +GLIBC_2.44 __iswupper_l F +GLIBC_2.44 __iswxdigit_l F +GLIBC_2.44 __isxdigit_l F +GLIBC_2.44 __libc_allocate_rtsig F +GLIBC_2.44 __libc_calloc F +GLIBC_2.44 __libc_current_sigrtmax F +GLIBC_2.44 __libc_current_sigrtmin F +GLIBC_2.44 __libc_free F +GLIBC_2.44 __libc_freeres F +GLIBC_2.44 __libc_init_first F +GLIBC_2.44 __libc_mallinfo F +GLIBC_2.44 __libc_malloc F +GLIBC_2.44 __libc_mallopt F +GLIBC_2.44 __libc_memalign F +GLIBC_2.44 __libc_pvalloc F +GLIBC_2.44 __libc_realloc F +GLIBC_2.44 __libc_sa_len F +GLIBC_2.44 __libc_single_threaded D 0x1 +GLIBC_2.44 __libc_start_main F +GLIBC_2.44 __libc_valloc F +GLIBC_2.44 __longjmp_chk F +GLIBC_2.44 __lseek F +GLIBC_2.44 __mbrlen F +GLIBC_2.44 __mbrtowc F +GLIBC_2.44 __mbsnrtowcs_chk F +GLIBC_2.44 __mbsrtowcs_chk F +GLIBC_2.44 __mbstowcs_chk F +GLIBC_2.44 __memcmpeq F +GLIBC_2.44 __memcpy_chk F +GLIBC_2.44 __memmove_chk F +GLIBC_2.44 __mempcpy F +GLIBC_2.44 __mempcpy_chk F +GLIBC_2.44 __memset_chk F +GLIBC_2.44 __memset_explicit_chk F +GLIBC_2.44 __monstartup F +GLIBC_2.44 __mq_open_2 F +GLIBC_2.44 __nanosleep F +GLIBC_2.44 __newlocale F +GLIBC_2.44 __nl_langinfo_l F +GLIBC_2.44 __nss_configure_lookup F +GLIBC_2.44 __nss_hostname_digits_dots F +GLIBC_2.44 __obstack_printf_chk F +GLIBC_2.44 __obstack_vprintf_chk F +GLIBC_2.44 __open F +GLIBC_2.44 __open64 F +GLIBC_2.44 __open64_2 F +GLIBC_2.44 __open_2 F +GLIBC_2.44 __openat64_2 F +GLIBC_2.44 __openat_2 F +GLIBC_2.44 __overflow F +GLIBC_2.44 __pipe F +GLIBC_2.44 __poll F +GLIBC_2.44 __poll_chk F +GLIBC_2.44 __posix_getopt F +GLIBC_2.44 __ppoll_chk F +GLIBC_2.44 __pread64 F +GLIBC_2.44 __pread64_chk F +GLIBC_2.44 __pread_chk F +GLIBC_2.44 __printf_chk F +GLIBC_2.44 __printf_fp F +GLIBC_2.44 __profile_frequency F +GLIBC_2.44 __progname D 0x4 +GLIBC_2.44 __progname_full D 0x4 +GLIBC_2.44 __pthread_cleanup_routine F +GLIBC_2.44 __pthread_key_create F +GLIBC_2.44 __pthread_register_cancel F +GLIBC_2.44 __pthread_register_cancel_defer F +GLIBC_2.44 __pthread_unregister_cancel F +GLIBC_2.44 __pthread_unregister_cancel_restore F +GLIBC_2.44 __pthread_unwind_next F +GLIBC_2.44 __ptsname_r_chk F +GLIBC_2.44 __pwrite64 F +GLIBC_2.44 __rawmemchr F +GLIBC_2.44 __rcmd_errstr D 0x4 +GLIBC_2.44 __read F +GLIBC_2.44 __read_chk F +GLIBC_2.44 __readlink_chk F +GLIBC_2.44 __readlinkat_chk F +GLIBC_2.44 __realpath_chk F +GLIBC_2.44 __recv_chk F +GLIBC_2.44 __recvfrom_chk F +GLIBC_2.44 __register_atfork F +GLIBC_2.44 __res_init F +GLIBC_2.44 __res_nclose F +GLIBC_2.44 __res_ninit F +GLIBC_2.44 __res_randomid F +GLIBC_2.44 __res_state F +GLIBC_2.44 __sbrk F +GLIBC_2.44 __sched_cpualloc F +GLIBC_2.44 __sched_cpucount F +GLIBC_2.44 __sched_cpufree F +GLIBC_2.44 __sched_get_priority_max F +GLIBC_2.44 __sched_get_priority_min F +GLIBC_2.44 __sched_getparam F +GLIBC_2.44 __sched_getscheduler F +GLIBC_2.44 __sched_setscheduler F +GLIBC_2.44 __sched_yield F +GLIBC_2.44 __select F +GLIBC_2.44 __send F +GLIBC_2.44 __setmntent F +GLIBC_2.44 __setpgid F +GLIBC_2.44 __sigaction F +GLIBC_2.44 __signbit F +GLIBC_2.44 __signbitf F +GLIBC_2.44 __signbitl F +GLIBC_2.44 __sigpause F +GLIBC_2.44 __sigsetjmp F +GLIBC_2.44 __sigsuspend F +GLIBC_2.44 __snprintf_chk F +GLIBC_2.44 __sprintf_chk F +GLIBC_2.44 __stack_chk_fail F +GLIBC_2.44 __statfs F +GLIBC_2.44 __stpcpy F +GLIBC_2.44 __stpcpy_chk F +GLIBC_2.44 __stpncpy F +GLIBC_2.44 __stpncpy_chk F +GLIBC_2.44 __strcasecmp F +GLIBC_2.44 __strcasecmp_l F +GLIBC_2.44 __strcasestr F +GLIBC_2.44 __strcat_chk F +GLIBC_2.44 __strcoll_l F +GLIBC_2.44 __strcpy_chk F +GLIBC_2.44 __strdup F +GLIBC_2.44 __strerror_r F +GLIBC_2.44 __strfmon_l F +GLIBC_2.44 __strftime_l F +GLIBC_2.44 __strlcat_chk F +GLIBC_2.44 __strlcpy_chk F +GLIBC_2.44 __strncasecmp_l F +GLIBC_2.44 __strncat_chk F +GLIBC_2.44 __strncpy_chk F +GLIBC_2.44 __strndup F +GLIBC_2.44 __strsep_g F +GLIBC_2.44 __strtod_internal F +GLIBC_2.44 __strtod_l F +GLIBC_2.44 __strtof_internal F +GLIBC_2.44 __strtof_l F +GLIBC_2.44 __strtok_r F +GLIBC_2.44 __strtol_internal F +GLIBC_2.44 __strtol_l F +GLIBC_2.44 __strtold_internal F +GLIBC_2.44 __strtold_l F +GLIBC_2.44 __strtoll_internal F +GLIBC_2.44 __strtoll_l F +GLIBC_2.44 __strtoul_internal F +GLIBC_2.44 __strtoul_l F +GLIBC_2.44 __strtoull_internal F +GLIBC_2.44 __strtoull_l F +GLIBC_2.44 __strverscmp F +GLIBC_2.44 __strxfrm_l F +GLIBC_2.44 __swprintf_chk F +GLIBC_2.44 __sysconf F +GLIBC_2.44 __syslog_chk F +GLIBC_2.44 __sysv_signal F +GLIBC_2.44 __timezone D 0x4 +GLIBC_2.44 __toascii_l F +GLIBC_2.44 __tolower_l F +GLIBC_2.44 __toupper_l F +GLIBC_2.44 __towctrans F +GLIBC_2.44 __towctrans_l F +GLIBC_2.44 __towlower_l F +GLIBC_2.44 __towupper_l F +GLIBC_2.44 __ttyname_r_chk F +GLIBC_2.44 __tzname D 0x8 +GLIBC_2.44 __uflow F +GLIBC_2.44 __underflow F +GLIBC_2.44 __uselocale F +GLIBC_2.44 __vasprintf_chk F +GLIBC_2.44 __vdprintf_chk F +GLIBC_2.44 __vfork F +GLIBC_2.44 __vfprintf_chk F +GLIBC_2.44 __vfscanf F +GLIBC_2.44 __vfwprintf_chk F +GLIBC_2.44 __vprintf_chk F +GLIBC_2.44 __vsnprintf F +GLIBC_2.44 __vsnprintf_chk F +GLIBC_2.44 __vsprintf_chk F +GLIBC_2.44 __vsscanf F +GLIBC_2.44 __vswprintf_chk F +GLIBC_2.44 __vsyslog_chk F +GLIBC_2.44 __vwprintf_chk F +GLIBC_2.44 __wait F +GLIBC_2.44 __waitpid F +GLIBC_2.44 __wcpcpy_chk F +GLIBC_2.44 __wcpncpy_chk F +GLIBC_2.44 __wcrtomb_chk F +GLIBC_2.44 __wcscasecmp_l F +GLIBC_2.44 __wcscat_chk F +GLIBC_2.44 __wcscoll_l F +GLIBC_2.44 __wcscpy_chk F +GLIBC_2.44 __wcsftime_l F +GLIBC_2.44 __wcslcat_chk F +GLIBC_2.44 __wcslcpy_chk F +GLIBC_2.44 __wcsncasecmp_l F +GLIBC_2.44 __wcsncat_chk F +GLIBC_2.44 __wcsncpy_chk F +GLIBC_2.44 __wcsnrtombs_chk F +GLIBC_2.44 __wcsrtombs_chk F +GLIBC_2.44 __wcstod_internal F +GLIBC_2.44 __wcstod_l F +GLIBC_2.44 __wcstof_internal F +GLIBC_2.44 __wcstof_l F +GLIBC_2.44 __wcstol_internal F +GLIBC_2.44 __wcstol_l F +GLIBC_2.44 __wcstold_internal F +GLIBC_2.44 __wcstold_l F +GLIBC_2.44 __wcstoll_internal F +GLIBC_2.44 __wcstoll_l F +GLIBC_2.44 __wcstombs_chk F +GLIBC_2.44 __wcstoul_internal F +GLIBC_2.44 __wcstoul_l F +GLIBC_2.44 __wcstoull_internal F +GLIBC_2.44 __wcstoull_l F +GLIBC_2.44 __wcsxfrm_l F +GLIBC_2.44 __wctomb_chk F +GLIBC_2.44 __wctrans_l F +GLIBC_2.44 __wctype_l F +GLIBC_2.44 __wmemcpy_chk F +GLIBC_2.44 __wmemmove_chk F +GLIBC_2.44 __wmempcpy_chk F +GLIBC_2.44 __wmemset_chk F +GLIBC_2.44 __woverflow F +GLIBC_2.44 __wprintf_chk F +GLIBC_2.44 __write F +GLIBC_2.44 __wuflow F +GLIBC_2.44 __wunderflow F +GLIBC_2.44 __xpg_basename F +GLIBC_2.44 __xpg_sigpause F +GLIBC_2.44 __xpg_strerror_r F +GLIBC_2.44 _dl_find_object F +GLIBC_2.44 _dl_mcount_wrapper_check F +GLIBC_2.44 _environ D 0x4 +GLIBC_2.44 _exit F +GLIBC_2.44 _flushlbf F +GLIBC_2.44 _libc_intl_domainname D 0x5 +GLIBC_2.44 _longjmp F +GLIBC_2.44 _mcleanup F +GLIBC_2.44 _mcount F +GLIBC_2.44 _nl_default_dirname D 0x12 +GLIBC_2.44 _nl_domain_bindings D 0x4 +GLIBC_2.44 _nl_msg_cat_cntr D 0x4 +GLIBC_2.44 _obstack_allocated_p F +GLIBC_2.44 _obstack_begin F +GLIBC_2.44 _obstack_begin_1 F +GLIBC_2.44 _obstack_free F +GLIBC_2.44 _obstack_memory_used F +GLIBC_2.44 _obstack_newchunk F +GLIBC_2.44 _pthread_cleanup_pop F +GLIBC_2.44 _pthread_cleanup_push F +GLIBC_2.44 _res D 0x200 +GLIBC_2.44 _res_hconf D 0x30 +GLIBC_2.44 _setjmp F +GLIBC_2.44 _tolower F +GLIBC_2.44 _toupper F +GLIBC_2.44 a64l F +GLIBC_2.44 abort F +GLIBC_2.44 abs F +GLIBC_2.44 accept F +GLIBC_2.44 accept4 F +GLIBC_2.44 access F +GLIBC_2.44 acct F +GLIBC_2.44 addmntent F +GLIBC_2.44 addseverity F +GLIBC_2.44 adjtime F +GLIBC_2.44 adjtimex F +GLIBC_2.44 aio_cancel F +GLIBC_2.44 aio_cancel64 F +GLIBC_2.44 aio_error F +GLIBC_2.44 aio_error64 F +GLIBC_2.44 aio_fsync F +GLIBC_2.44 aio_fsync64 F +GLIBC_2.44 aio_init F +GLIBC_2.44 aio_read F +GLIBC_2.44 aio_read64 F +GLIBC_2.44 aio_return F +GLIBC_2.44 aio_return64 F +GLIBC_2.44 aio_suspend F +GLIBC_2.44 aio_suspend64 F +GLIBC_2.44 aio_write F +GLIBC_2.44 aio_write64 F +GLIBC_2.44 alarm F +GLIBC_2.44 aligned_alloc F +GLIBC_2.44 alphasort F +GLIBC_2.44 alphasort64 F +GLIBC_2.44 arc4random F +GLIBC_2.44 arc4random_buf F +GLIBC_2.44 arc4random_uniform F +GLIBC_2.44 argp_err_exit_status D 0x4 +GLIBC_2.44 argp_error F +GLIBC_2.44 argp_failure F +GLIBC_2.44 argp_help F +GLIBC_2.44 argp_parse F +GLIBC_2.44 argp_program_bug_address D 0x4 +GLIBC_2.44 argp_program_version D 0x4 +GLIBC_2.44 argp_program_version_hook D 0x4 +GLIBC_2.44 argp_state_help F +GLIBC_2.44 argp_usage F +GLIBC_2.44 argz_add F +GLIBC_2.44 argz_add_sep F +GLIBC_2.44 argz_append F +GLIBC_2.44 argz_count F +GLIBC_2.44 argz_create F +GLIBC_2.44 argz_create_sep F +GLIBC_2.44 argz_delete F +GLIBC_2.44 argz_extract F +GLIBC_2.44 argz_insert F +GLIBC_2.44 argz_next F +GLIBC_2.44 argz_replace F +GLIBC_2.44 argz_stringify F +GLIBC_2.44 asctime F +GLIBC_2.44 asctime_r F +GLIBC_2.44 asprintf F +GLIBC_2.44 atof F +GLIBC_2.44 atoi F +GLIBC_2.44 atol F +GLIBC_2.44 atoll F +GLIBC_2.44 backtrace F +GLIBC_2.44 backtrace_symbols F +GLIBC_2.44 backtrace_symbols_fd F +GLIBC_2.44 basename F +GLIBC_2.44 bcmp F +GLIBC_2.44 bcopy F +GLIBC_2.44 bind F +GLIBC_2.44 bind_textdomain_codeset F +GLIBC_2.44 bindresvport F +GLIBC_2.44 bindtextdomain F +GLIBC_2.44 brk F +GLIBC_2.44 bsd_signal F +GLIBC_2.44 bsearch F +GLIBC_2.44 btowc F +GLIBC_2.44 bzero F +GLIBC_2.44 c16rtomb F +GLIBC_2.44 c32rtomb F +GLIBC_2.44 c8rtomb F +GLIBC_2.44 call_once F +GLIBC_2.44 calloc F +GLIBC_2.44 canonicalize_file_name F +GLIBC_2.44 capget F +GLIBC_2.44 capset F +GLIBC_2.44 catclose F +GLIBC_2.44 catgets F +GLIBC_2.44 catopen F +GLIBC_2.44 cfgetibaud F +GLIBC_2.44 cfgetispeed F +GLIBC_2.44 cfgetobaud F +GLIBC_2.44 cfgetospeed F +GLIBC_2.44 cfmakeraw F +GLIBC_2.44 cfsetbaud F +GLIBC_2.44 cfsetibaud F +GLIBC_2.44 cfsetispeed F +GLIBC_2.44 cfsetobaud F +GLIBC_2.44 cfsetospeed F +GLIBC_2.44 cfsetspeed F +GLIBC_2.44 chdir F +GLIBC_2.44 chflags F +GLIBC_2.44 chmod F +GLIBC_2.44 chown F +GLIBC_2.44 chroot F +GLIBC_2.44 clearenv F +GLIBC_2.44 clearerr F +GLIBC_2.44 clearerr_unlocked F +GLIBC_2.44 clock F +GLIBC_2.44 clock_adjtime F +GLIBC_2.44 clock_getcpuclockid F +GLIBC_2.44 clock_getres F +GLIBC_2.44 clock_gettime F +GLIBC_2.44 clock_nanosleep F +GLIBC_2.44 clock_settime F +GLIBC_2.44 clone F +GLIBC_2.44 close F +GLIBC_2.44 close_range F +GLIBC_2.44 closedir F +GLIBC_2.44 closefrom F +GLIBC_2.44 closelog F +GLIBC_2.44 cnd_broadcast F +GLIBC_2.44 cnd_destroy F +GLIBC_2.44 cnd_init F +GLIBC_2.44 cnd_signal F +GLIBC_2.44 cnd_timedwait F +GLIBC_2.44 cnd_wait F +GLIBC_2.44 confstr F +GLIBC_2.44 connect F +GLIBC_2.44 copy_file_range F +GLIBC_2.44 copysign F +GLIBC_2.44 copysignf F +GLIBC_2.44 copysignl F +GLIBC_2.44 creat F +GLIBC_2.44 creat64 F +GLIBC_2.44 ctermid F +GLIBC_2.44 ctime F +GLIBC_2.44 ctime_r F +GLIBC_2.44 cuserid F +GLIBC_2.44 daemon F +GLIBC_2.44 daylight D 0x4 +GLIBC_2.44 dcgettext F +GLIBC_2.44 dcngettext F +GLIBC_2.44 delete_module F +GLIBC_2.44 dgettext F +GLIBC_2.44 difftime F +GLIBC_2.44 dirfd F +GLIBC_2.44 dirname F +GLIBC_2.44 div F +GLIBC_2.44 dl_iterate_phdr F +GLIBC_2.44 dladdr F +GLIBC_2.44 dladdr1 F +GLIBC_2.44 dlclose F +GLIBC_2.44 dlerror F +GLIBC_2.44 dlinfo F +GLIBC_2.44 dlmopen F +GLIBC_2.44 dlopen F +GLIBC_2.44 dlsym F +GLIBC_2.44 dlvsym F +GLIBC_2.44 dn_comp F +GLIBC_2.44 dn_expand F +GLIBC_2.44 dn_skipname F +GLIBC_2.44 dngettext F +GLIBC_2.44 dprintf F +GLIBC_2.44 drand48 F +GLIBC_2.44 drand48_r F +GLIBC_2.44 dup F +GLIBC_2.44 dup2 F +GLIBC_2.44 dup3 F +GLIBC_2.44 duplocale F +GLIBC_2.44 dysize F +GLIBC_2.44 eaccess F +GLIBC_2.44 ecvt F +GLIBC_2.44 ecvt_r F +GLIBC_2.44 endaliasent F +GLIBC_2.44 endfsent F +GLIBC_2.44 endgrent F +GLIBC_2.44 endhostent F +GLIBC_2.44 endmntent F +GLIBC_2.44 endnetent F +GLIBC_2.44 endnetgrent F +GLIBC_2.44 endprotoent F +GLIBC_2.44 endpwent F +GLIBC_2.44 endrpcent F +GLIBC_2.44 endservent F +GLIBC_2.44 endsgent F +GLIBC_2.44 endspent F +GLIBC_2.44 endttyent F +GLIBC_2.44 endusershell F +GLIBC_2.44 endutent F +GLIBC_2.44 endutxent F +GLIBC_2.44 environ D 0x4 +GLIBC_2.44 envz_add F +GLIBC_2.44 envz_entry F +GLIBC_2.44 envz_get F +GLIBC_2.44 envz_merge F +GLIBC_2.44 envz_remove F +GLIBC_2.44 envz_strip F +GLIBC_2.44 epoll_create F +GLIBC_2.44 epoll_create1 F +GLIBC_2.44 epoll_ctl F +GLIBC_2.44 epoll_pwait F +GLIBC_2.44 epoll_pwait2 F +GLIBC_2.44 epoll_wait F +GLIBC_2.44 erand48 F +GLIBC_2.44 erand48_r F +GLIBC_2.44 err F +GLIBC_2.44 error F +GLIBC_2.44 error_at_line F +GLIBC_2.44 error_message_count D 0x4 +GLIBC_2.44 error_one_per_line D 0x4 +GLIBC_2.44 error_print_progname D 0x4 +GLIBC_2.44 errx F +GLIBC_2.44 ether_aton F +GLIBC_2.44 ether_aton_r F +GLIBC_2.44 ether_hostton F +GLIBC_2.44 ether_line F +GLIBC_2.44 ether_ntoa F +GLIBC_2.44 ether_ntoa_r F +GLIBC_2.44 ether_ntohost F +GLIBC_2.44 euidaccess F +GLIBC_2.44 eventfd F +GLIBC_2.44 eventfd_read F +GLIBC_2.44 eventfd_write F +GLIBC_2.44 execl F +GLIBC_2.44 execle F +GLIBC_2.44 execlp F +GLIBC_2.44 execv F +GLIBC_2.44 execve F +GLIBC_2.44 execveat F +GLIBC_2.44 execvp F +GLIBC_2.44 execvpe F +GLIBC_2.44 exit F +GLIBC_2.44 explicit_bzero F +GLIBC_2.44 faccessat F +GLIBC_2.44 fallocate F +GLIBC_2.44 fallocate64 F +GLIBC_2.44 fanotify_init F +GLIBC_2.44 fanotify_mark F +GLIBC_2.44 fchdir F +GLIBC_2.44 fchflags F +GLIBC_2.44 fchmod F +GLIBC_2.44 fchmodat F +GLIBC_2.44 fchown F +GLIBC_2.44 fchownat F +GLIBC_2.44 fclose F +GLIBC_2.44 fcloseall F +GLIBC_2.44 fcntl F +GLIBC_2.44 fcntl64 F +GLIBC_2.44 fcvt F +GLIBC_2.44 fcvt_r F +GLIBC_2.44 fdatasync F +GLIBC_2.44 fdopen F +GLIBC_2.44 fdopendir F +GLIBC_2.44 feof F +GLIBC_2.44 feof_unlocked F +GLIBC_2.44 ferror F +GLIBC_2.44 ferror_unlocked F +GLIBC_2.44 fexecve F +GLIBC_2.44 fflush F +GLIBC_2.44 fflush_unlocked F +GLIBC_2.44 ffs F +GLIBC_2.44 ffsl F +GLIBC_2.44 ffsll F +GLIBC_2.44 fgetc F +GLIBC_2.44 fgetc_unlocked F +GLIBC_2.44 fgetgrent F +GLIBC_2.44 fgetgrent_r F +GLIBC_2.44 fgetpos F +GLIBC_2.44 fgetpos64 F +GLIBC_2.44 fgetpwent F +GLIBC_2.44 fgetpwent_r F +GLIBC_2.44 fgets F +GLIBC_2.44 fgets_unlocked F +GLIBC_2.44 fgetsgent F +GLIBC_2.44 fgetsgent_r F +GLIBC_2.44 fgetspent F +GLIBC_2.44 fgetspent_r F +GLIBC_2.44 fgetwc F +GLIBC_2.44 fgetwc_unlocked F +GLIBC_2.44 fgetws F +GLIBC_2.44 fgetws_unlocked F +GLIBC_2.44 fgetxattr F +GLIBC_2.44 fileno F +GLIBC_2.44 fileno_unlocked F +GLIBC_2.44 finite F +GLIBC_2.44 finitef F +GLIBC_2.44 finitel F +GLIBC_2.44 flistxattr F +GLIBC_2.44 flock F +GLIBC_2.44 flockfile F +GLIBC_2.44 fmemopen F +GLIBC_2.44 fmtmsg F +GLIBC_2.44 fnmatch F +GLIBC_2.44 fopen F +GLIBC_2.44 fopen64 F +GLIBC_2.44 fopencookie F +GLIBC_2.44 fork F +GLIBC_2.44 forkpty F +GLIBC_2.44 fpathconf F +GLIBC_2.44 fprintf F +GLIBC_2.44 fputc F +GLIBC_2.44 fputc_unlocked F +GLIBC_2.44 fputs F +GLIBC_2.44 fputs_unlocked F +GLIBC_2.44 fputwc F +GLIBC_2.44 fputwc_unlocked F +GLIBC_2.44 fputws F +GLIBC_2.44 fputws_unlocked F +GLIBC_2.44 fread F +GLIBC_2.44 fread_unlocked F +GLIBC_2.44 free F +GLIBC_2.44 free_aligned_sized F +GLIBC_2.44 free_sized F +GLIBC_2.44 freeaddrinfo F +GLIBC_2.44 freeifaddrs F +GLIBC_2.44 freelocale F +GLIBC_2.44 fremovexattr F +GLIBC_2.44 freopen F +GLIBC_2.44 freopen64 F +GLIBC_2.44 frexp F +GLIBC_2.44 frexpf F +GLIBC_2.44 frexpl F +GLIBC_2.44 fscanf F +GLIBC_2.44 fsconfig F +GLIBC_2.44 fseek F +GLIBC_2.44 fseeko F +GLIBC_2.44 fseeko64 F +GLIBC_2.44 fsetpos F +GLIBC_2.44 fsetpos64 F +GLIBC_2.44 fsetxattr F +GLIBC_2.44 fsmount F +GLIBC_2.44 fsopen F +GLIBC_2.44 fspick F +GLIBC_2.44 fstat F +GLIBC_2.44 fstat64 F +GLIBC_2.44 fstatat F +GLIBC_2.44 fstatat64 F +GLIBC_2.44 fstatfs F +GLIBC_2.44 fstatfs64 F +GLIBC_2.44 fstatvfs F +GLIBC_2.44 fstatvfs64 F +GLIBC_2.44 fsync F +GLIBC_2.44 ftell F +GLIBC_2.44 ftello F +GLIBC_2.44 ftello64 F +GLIBC_2.44 ftime F +GLIBC_2.44 ftok F +GLIBC_2.44 ftruncate F +GLIBC_2.44 ftruncate64 F +GLIBC_2.44 ftrylockfile F +GLIBC_2.44 fts64_children F +GLIBC_2.44 fts64_close F +GLIBC_2.44 fts64_open F +GLIBC_2.44 fts64_read F +GLIBC_2.44 fts64_set F +GLIBC_2.44 fts_children F +GLIBC_2.44 fts_close F +GLIBC_2.44 fts_open F +GLIBC_2.44 fts_read F +GLIBC_2.44 fts_set F +GLIBC_2.44 ftw F +GLIBC_2.44 ftw64 F +GLIBC_2.44 funlockfile F +GLIBC_2.44 futimens F +GLIBC_2.44 futimes F +GLIBC_2.44 futimesat F +GLIBC_2.44 fwide F +GLIBC_2.44 fwprintf F +GLIBC_2.44 fwrite F +GLIBC_2.44 fwrite_unlocked F +GLIBC_2.44 fwscanf F +GLIBC_2.44 gai_cancel F +GLIBC_2.44 gai_error F +GLIBC_2.44 gai_strerror F +GLIBC_2.44 gai_suspend F +GLIBC_2.44 gcvt F +GLIBC_2.44 get_avphys_pages F +GLIBC_2.44 get_current_dir_name F +GLIBC_2.44 get_nprocs F +GLIBC_2.44 get_nprocs_conf F +GLIBC_2.44 get_phys_pages F +GLIBC_2.44 getaddrinfo F +GLIBC_2.44 getaddrinfo_a F +GLIBC_2.44 getaliasbyname F +GLIBC_2.44 getaliasbyname_r F +GLIBC_2.44 getaliasent F +GLIBC_2.44 getaliasent_r F +GLIBC_2.44 getauxval F +GLIBC_2.44 getc F +GLIBC_2.44 getc_unlocked F +GLIBC_2.44 getchar F +GLIBC_2.44 getchar_unlocked F +GLIBC_2.44 getcontext F +GLIBC_2.44 getcpu F +GLIBC_2.44 getcwd F +GLIBC_2.44 getdate F +GLIBC_2.44 getdate_err D 0x4 +GLIBC_2.44 getdate_r F +GLIBC_2.44 getdelim F +GLIBC_2.44 getdents64 F +GLIBC_2.44 getdirentries F +GLIBC_2.44 getdirentries64 F +GLIBC_2.44 getdomainname F +GLIBC_2.44 getdtablesize F +GLIBC_2.44 getegid F +GLIBC_2.44 getentropy F +GLIBC_2.44 getenv F +GLIBC_2.44 geteuid F +GLIBC_2.44 getfsent F +GLIBC_2.44 getfsfile F +GLIBC_2.44 getfsspec F +GLIBC_2.44 getgid F +GLIBC_2.44 getgrent F +GLIBC_2.44 getgrent_r F +GLIBC_2.44 getgrgid F +GLIBC_2.44 getgrgid_r F +GLIBC_2.44 getgrnam F +GLIBC_2.44 getgrnam_r F +GLIBC_2.44 getgrouplist F +GLIBC_2.44 getgroups F +GLIBC_2.44 gethostbyaddr F +GLIBC_2.44 gethostbyaddr_r F +GLIBC_2.44 gethostbyname F +GLIBC_2.44 gethostbyname2 F +GLIBC_2.44 gethostbyname2_r F +GLIBC_2.44 gethostbyname_r F +GLIBC_2.44 gethostent F +GLIBC_2.44 gethostent_r F +GLIBC_2.44 gethostid F +GLIBC_2.44 gethostname F +GLIBC_2.44 getifaddrs F +GLIBC_2.44 getipv4sourcefilter F +GLIBC_2.44 getitimer F +GLIBC_2.44 getline F +GLIBC_2.44 getloadavg F +GLIBC_2.44 getlogin F +GLIBC_2.44 getlogin_r F +GLIBC_2.44 getmntent F +GLIBC_2.44 getmntent_r F +GLIBC_2.44 getnameinfo F +GLIBC_2.44 getnetbyaddr F +GLIBC_2.44 getnetbyaddr_r F +GLIBC_2.44 getnetbyname F +GLIBC_2.44 getnetbyname_r F +GLIBC_2.44 getnetent F +GLIBC_2.44 getnetent_r F +GLIBC_2.44 getnetgrent F +GLIBC_2.44 getnetgrent_r F +GLIBC_2.44 getopt F +GLIBC_2.44 getopt_long F +GLIBC_2.44 getopt_long_only F +GLIBC_2.44 getpagesize F +GLIBC_2.44 getpass F +GLIBC_2.44 getpeername F +GLIBC_2.44 getpgid F +GLIBC_2.44 getpgrp F +GLIBC_2.44 getpid F +GLIBC_2.44 getppid F +GLIBC_2.44 getpriority F +GLIBC_2.44 getprotobyname F +GLIBC_2.44 getprotobyname_r F +GLIBC_2.44 getprotobynumber F +GLIBC_2.44 getprotobynumber_r F +GLIBC_2.44 getprotoent F +GLIBC_2.44 getprotoent_r F +GLIBC_2.44 getpt F +GLIBC_2.44 getpw F +GLIBC_2.44 getpwent F +GLIBC_2.44 getpwent_r F +GLIBC_2.44 getpwnam F +GLIBC_2.44 getpwnam_r F +GLIBC_2.44 getpwuid F +GLIBC_2.44 getpwuid_r F +GLIBC_2.44 getrandom F +GLIBC_2.44 getresgid F +GLIBC_2.44 getresuid F +GLIBC_2.44 getrlimit F +GLIBC_2.44 getrlimit64 F +GLIBC_2.44 getrpcbyname F +GLIBC_2.44 getrpcbyname_r F +GLIBC_2.44 getrpcbynumber F +GLIBC_2.44 getrpcbynumber_r F +GLIBC_2.44 getrpcent F +GLIBC_2.44 getrpcent_r F +GLIBC_2.44 getrusage F +GLIBC_2.44 gets F +GLIBC_2.44 getservbyname F +GLIBC_2.44 getservbyname_r F +GLIBC_2.44 getservbyport F +GLIBC_2.44 getservbyport_r F +GLIBC_2.44 getservent F +GLIBC_2.44 getservent_r F +GLIBC_2.44 getsgent F +GLIBC_2.44 getsgent_r F +GLIBC_2.44 getsgnam F +GLIBC_2.44 getsgnam_r F +GLIBC_2.44 getsid F +GLIBC_2.44 getsockname F +GLIBC_2.44 getsockopt F +GLIBC_2.44 getsourcefilter F +GLIBC_2.44 getspent F +GLIBC_2.44 getspent_r F +GLIBC_2.44 getspnam F +GLIBC_2.44 getspnam_r F +GLIBC_2.44 getsubopt F +GLIBC_2.44 gettext F +GLIBC_2.44 gettid F +GLIBC_2.44 gettimeofday F +GLIBC_2.44 getttyent F +GLIBC_2.44 getttynam F +GLIBC_2.44 getuid F +GLIBC_2.44 getusershell F +GLIBC_2.44 getutent F +GLIBC_2.44 getutent_r F +GLIBC_2.44 getutid F +GLIBC_2.44 getutid_r F +GLIBC_2.44 getutline F +GLIBC_2.44 getutline_r F +GLIBC_2.44 getutmp F +GLIBC_2.44 getutmpx F +GLIBC_2.44 getutxent F +GLIBC_2.44 getutxid F +GLIBC_2.44 getutxline F +GLIBC_2.44 getw F +GLIBC_2.44 getwc F +GLIBC_2.44 getwc_unlocked F +GLIBC_2.44 getwchar F +GLIBC_2.44 getwchar_unlocked F +GLIBC_2.44 getwd F +GLIBC_2.44 getxattr F +GLIBC_2.44 glob F +GLIBC_2.44 glob64 F +GLIBC_2.44 glob_pattern_p F +GLIBC_2.44 globfree F +GLIBC_2.44 globfree64 F +GLIBC_2.44 gmtime F +GLIBC_2.44 gmtime_r F +GLIBC_2.44 gnu_dev_major F +GLIBC_2.44 gnu_dev_makedev F +GLIBC_2.44 gnu_dev_minor F +GLIBC_2.44 gnu_get_libc_release F +GLIBC_2.44 gnu_get_libc_version F +GLIBC_2.44 grantpt F +GLIBC_2.44 group_member F +GLIBC_2.44 gsignal F +GLIBC_2.44 gtty F +GLIBC_2.44 h_errlist D 0x14 +GLIBC_2.44 h_nerr D 0x4 +GLIBC_2.44 hasmntopt F +GLIBC_2.44 hcreate F +GLIBC_2.44 hcreate_r F +GLIBC_2.44 hdestroy F +GLIBC_2.44 hdestroy_r F +GLIBC_2.44 herror F +GLIBC_2.44 hsearch F +GLIBC_2.44 hsearch_r F +GLIBC_2.44 hstrerror F +GLIBC_2.44 htonl F +GLIBC_2.44 htons F +GLIBC_2.44 iconv F +GLIBC_2.44 iconv_close F +GLIBC_2.44 iconv_open F +GLIBC_2.44 if_freenameindex F +GLIBC_2.44 if_indextoname F +GLIBC_2.44 if_nameindex F +GLIBC_2.44 if_nametoindex F +GLIBC_2.44 imaxabs F +GLIBC_2.44 imaxdiv F +GLIBC_2.44 in6addr_any D 0x10 +GLIBC_2.44 in6addr_loopback D 0x10 +GLIBC_2.44 index F +GLIBC_2.44 inet6_opt_append F +GLIBC_2.44 inet6_opt_find F +GLIBC_2.44 inet6_opt_finish F +GLIBC_2.44 inet6_opt_get_val F +GLIBC_2.44 inet6_opt_init F +GLIBC_2.44 inet6_opt_next F +GLIBC_2.44 inet6_opt_set_val F +GLIBC_2.44 inet6_option_alloc F +GLIBC_2.44 inet6_option_append F +GLIBC_2.44 inet6_option_find F +GLIBC_2.44 inet6_option_init F +GLIBC_2.44 inet6_option_next F +GLIBC_2.44 inet6_option_space F +GLIBC_2.44 inet6_rth_add F +GLIBC_2.44 inet6_rth_getaddr F +GLIBC_2.44 inet6_rth_init F +GLIBC_2.44 inet6_rth_reverse F +GLIBC_2.44 inet6_rth_segments F +GLIBC_2.44 inet6_rth_space F +GLIBC_2.44 inet_addr F +GLIBC_2.44 inet_aton F +GLIBC_2.44 inet_lnaof F +GLIBC_2.44 inet_makeaddr F +GLIBC_2.44 inet_netof F +GLIBC_2.44 inet_network F +GLIBC_2.44 inet_nsap_addr F +GLIBC_2.44 inet_nsap_ntoa F +GLIBC_2.44 inet_ntoa F +GLIBC_2.44 inet_ntop F +GLIBC_2.44 inet_pton F +GLIBC_2.44 init_module F +GLIBC_2.44 initgroups F +GLIBC_2.44 initstate F +GLIBC_2.44 initstate_r F +GLIBC_2.44 innetgr F +GLIBC_2.44 inotify_add_watch F +GLIBC_2.44 inotify_init F +GLIBC_2.44 inotify_init1 F +GLIBC_2.44 inotify_rm_watch F +GLIBC_2.44 insque F +GLIBC_2.44 ioctl F +GLIBC_2.44 iruserok F +GLIBC_2.44 iruserok_af F +GLIBC_2.44 isalnum F +GLIBC_2.44 isalnum_l F +GLIBC_2.44 isalpha F +GLIBC_2.44 isalpha_l F +GLIBC_2.44 isascii F +GLIBC_2.44 isatty F +GLIBC_2.44 isblank F +GLIBC_2.44 isblank_l F +GLIBC_2.44 iscntrl F +GLIBC_2.44 iscntrl_l F +GLIBC_2.44 isctype F +GLIBC_2.44 isdigit F +GLIBC_2.44 isdigit_l F +GLIBC_2.44 isfdtype F +GLIBC_2.44 isgraph F +GLIBC_2.44 isgraph_l F +GLIBC_2.44 isinf F +GLIBC_2.44 isinff F +GLIBC_2.44 isinfl F +GLIBC_2.44 islower F +GLIBC_2.44 islower_l F +GLIBC_2.44 isnan F +GLIBC_2.44 isnanf F +GLIBC_2.44 isnanl F +GLIBC_2.44 isprint F +GLIBC_2.44 isprint_l F +GLIBC_2.44 ispunct F +GLIBC_2.44 ispunct_l F +GLIBC_2.44 isspace F +GLIBC_2.44 isspace_l F +GLIBC_2.44 isupper F +GLIBC_2.44 isupper_l F +GLIBC_2.44 iswalnum F +GLIBC_2.44 iswalnum_l F +GLIBC_2.44 iswalpha F +GLIBC_2.44 iswalpha_l F +GLIBC_2.44 iswblank F +GLIBC_2.44 iswblank_l F +GLIBC_2.44 iswcntrl F +GLIBC_2.44 iswcntrl_l F +GLIBC_2.44 iswctype F +GLIBC_2.44 iswctype_l F +GLIBC_2.44 iswdigit F +GLIBC_2.44 iswdigit_l F +GLIBC_2.44 iswgraph F +GLIBC_2.44 iswgraph_l F +GLIBC_2.44 iswlower F +GLIBC_2.44 iswlower_l F +GLIBC_2.44 iswprint F +GLIBC_2.44 iswprint_l F +GLIBC_2.44 iswpunct F +GLIBC_2.44 iswpunct_l F +GLIBC_2.44 iswspace F +GLIBC_2.44 iswspace_l F +GLIBC_2.44 iswupper F +GLIBC_2.44 iswupper_l F +GLIBC_2.44 iswxdigit F +GLIBC_2.44 iswxdigit_l F +GLIBC_2.44 isxdigit F +GLIBC_2.44 isxdigit_l F +GLIBC_2.44 jrand48 F +GLIBC_2.44 jrand48_r F +GLIBC_2.44 kill F +GLIBC_2.44 killpg F +GLIBC_2.44 klogctl F +GLIBC_2.44 l64a F +GLIBC_2.44 labs F +GLIBC_2.44 lchmod F +GLIBC_2.44 lchown F +GLIBC_2.44 lckpwdf F +GLIBC_2.44 lcong48 F +GLIBC_2.44 lcong48_r F +GLIBC_2.44 ldexp F +GLIBC_2.44 ldexpf F +GLIBC_2.44 ldexpl F +GLIBC_2.44 ldiv F +GLIBC_2.44 lfind F +GLIBC_2.44 lgetxattr F +GLIBC_2.44 link F +GLIBC_2.44 linkat F +GLIBC_2.44 lio_listio F +GLIBC_2.44 lio_listio64 F +GLIBC_2.44 listen F +GLIBC_2.44 listxattr F +GLIBC_2.44 llabs F +GLIBC_2.44 lldiv F +GLIBC_2.44 llistxattr F +GLIBC_2.44 localeconv F +GLIBC_2.44 localtime F +GLIBC_2.44 localtime_r F +GLIBC_2.44 lockf F +GLIBC_2.44 lockf64 F +GLIBC_2.44 login F +GLIBC_2.44 login_tty F +GLIBC_2.44 logout F +GLIBC_2.44 logwtmp F +GLIBC_2.44 longjmp F +GLIBC_2.44 lrand48 F +GLIBC_2.44 lrand48_r F +GLIBC_2.44 lremovexattr F +GLIBC_2.44 lsearch F +GLIBC_2.44 lseek F +GLIBC_2.44 lseek64 F +GLIBC_2.44 lsetxattr F +GLIBC_2.44 lstat F +GLIBC_2.44 lstat64 F +GLIBC_2.44 lutimes F +GLIBC_2.44 madvise F +GLIBC_2.44 makecontext F +GLIBC_2.44 mallinfo F +GLIBC_2.44 mallinfo2 F +GLIBC_2.44 malloc F +GLIBC_2.44 malloc_info F +GLIBC_2.44 malloc_stats F +GLIBC_2.44 malloc_trim F +GLIBC_2.44 malloc_usable_size F +GLIBC_2.44 mallopt F +GLIBC_2.44 mblen F +GLIBC_2.44 mbrlen F +GLIBC_2.44 mbrtoc16 F +GLIBC_2.44 mbrtoc32 F +GLIBC_2.44 mbrtoc8 F +GLIBC_2.44 mbrtowc F +GLIBC_2.44 mbsinit F +GLIBC_2.44 mbsnrtowcs F +GLIBC_2.44 mbsrtowcs F +GLIBC_2.44 mbstowcs F +GLIBC_2.44 mbtowc F +GLIBC_2.44 mcheck F +GLIBC_2.44 mcheck_check_all F +GLIBC_2.44 mcheck_pedantic F +GLIBC_2.44 memalign F +GLIBC_2.44 memalignment F +GLIBC_2.44 memccpy F +GLIBC_2.44 memchr F +GLIBC_2.44 memcmp F +GLIBC_2.44 memcpy F +GLIBC_2.44 memfd_create F +GLIBC_2.44 memfrob F +GLIBC_2.44 memmem F +GLIBC_2.44 memmove F +GLIBC_2.44 mempcpy F +GLIBC_2.44 memrchr F +GLIBC_2.44 memset F +GLIBC_2.44 memset_explicit F +GLIBC_2.44 mincore F +GLIBC_2.44 mkdir F +GLIBC_2.44 mkdirat F +GLIBC_2.44 mkdtemp F +GLIBC_2.44 mkfifo F +GLIBC_2.44 mkfifoat F +GLIBC_2.44 mknod F +GLIBC_2.44 mknodat F +GLIBC_2.44 mkostemp F +GLIBC_2.44 mkostemp64 F +GLIBC_2.44 mkostemps F +GLIBC_2.44 mkostemps64 F +GLIBC_2.44 mkstemp F +GLIBC_2.44 mkstemp64 F +GLIBC_2.44 mkstemps F +GLIBC_2.44 mkstemps64 F +GLIBC_2.44 mktemp F +GLIBC_2.44 mktime F +GLIBC_2.44 mlock F +GLIBC_2.44 mlock2 F +GLIBC_2.44 mlockall F +GLIBC_2.44 mmap F +GLIBC_2.44 mmap64 F +GLIBC_2.44 modf F +GLIBC_2.44 modff F +GLIBC_2.44 modfl F +GLIBC_2.44 moncontrol F +GLIBC_2.44 monstartup F +GLIBC_2.44 mount F +GLIBC_2.44 mount_setattr F +GLIBC_2.44 move_mount F +GLIBC_2.44 mprobe F +GLIBC_2.44 mprotect F +GLIBC_2.44 mq_close F +GLIBC_2.44 mq_getattr F +GLIBC_2.44 mq_notify F +GLIBC_2.44 mq_open F +GLIBC_2.44 mq_receive F +GLIBC_2.44 mq_send F +GLIBC_2.44 mq_setattr F +GLIBC_2.44 mq_timedreceive F +GLIBC_2.44 mq_timedsend F +GLIBC_2.44 mq_unlink F +GLIBC_2.44 mrand48 F +GLIBC_2.44 mrand48_r F +GLIBC_2.44 mremap F +GLIBC_2.44 mseal F +GLIBC_2.44 msgctl F +GLIBC_2.44 msgget F +GLIBC_2.44 msgrcv F +GLIBC_2.44 msgsnd F +GLIBC_2.44 msync F +GLIBC_2.44 mtrace F +GLIBC_2.44 mtx_destroy F +GLIBC_2.44 mtx_init F +GLIBC_2.44 mtx_lock F +GLIBC_2.44 mtx_timedlock F +GLIBC_2.44 mtx_trylock F +GLIBC_2.44 mtx_unlock F +GLIBC_2.44 munlock F +GLIBC_2.44 munlockall F +GLIBC_2.44 munmap F +GLIBC_2.44 muntrace F +GLIBC_2.44 name_to_handle_at F +GLIBC_2.44 nanosleep F +GLIBC_2.44 newlocale F +GLIBC_2.44 nftw F +GLIBC_2.44 nftw64 F +GLIBC_2.44 ngettext F +GLIBC_2.44 nice F +GLIBC_2.44 nl_langinfo F +GLIBC_2.44 nl_langinfo_l F +GLIBC_2.44 nrand48 F +GLIBC_2.44 nrand48_r F +GLIBC_2.44 ns_name_compress F +GLIBC_2.44 ns_name_ntop F +GLIBC_2.44 ns_name_pack F +GLIBC_2.44 ns_name_pton F +GLIBC_2.44 ns_name_skip F +GLIBC_2.44 ns_name_uncompress F +GLIBC_2.44 ns_name_unpack F +GLIBC_2.44 ntohl F +GLIBC_2.44 ntohs F +GLIBC_2.44 ntp_adjtime F +GLIBC_2.44 ntp_gettime F +GLIBC_2.44 ntp_gettimex F +GLIBC_2.44 obstack_alloc_failed_handler D 0x4 +GLIBC_2.44 obstack_exit_failure D 0x4 +GLIBC_2.44 obstack_free F +GLIBC_2.44 obstack_printf F +GLIBC_2.44 obstack_vprintf F +GLIBC_2.44 on_exit F +GLIBC_2.44 open F +GLIBC_2.44 open64 F +GLIBC_2.44 open_by_handle_at F +GLIBC_2.44 open_memstream F +GLIBC_2.44 open_tree F +GLIBC_2.44 open_wmemstream F +GLIBC_2.44 openat F +GLIBC_2.44 openat2 F +GLIBC_2.44 openat64 F +GLIBC_2.44 opendir F +GLIBC_2.44 openlog F +GLIBC_2.44 openpty F +GLIBC_2.44 optarg D 0x4 +GLIBC_2.44 opterr D 0x4 +GLIBC_2.44 optind D 0x4 +GLIBC_2.44 optopt D 0x4 +GLIBC_2.44 parse_printf_format F +GLIBC_2.44 pathconf F +GLIBC_2.44 pause F +GLIBC_2.44 pclose F +GLIBC_2.44 perror F +GLIBC_2.44 personality F +GLIBC_2.44 pidfd_getfd F +GLIBC_2.44 pidfd_getpid F +GLIBC_2.44 pidfd_open F +GLIBC_2.44 pidfd_send_signal F +GLIBC_2.44 pidfd_spawn F +GLIBC_2.44 pidfd_spawnp F +GLIBC_2.44 pipe F +GLIBC_2.44 pipe2 F +GLIBC_2.44 pivot_root F +GLIBC_2.44 pkey_alloc F +GLIBC_2.44 pkey_free F +GLIBC_2.44 pkey_get F +GLIBC_2.44 pkey_mprotect F +GLIBC_2.44 pkey_set F +GLIBC_2.44 poll F +GLIBC_2.44 popen F +GLIBC_2.44 posix_fadvise F +GLIBC_2.44 posix_fadvise64 F +GLIBC_2.44 posix_fallocate F +GLIBC_2.44 posix_fallocate64 F +GLIBC_2.44 posix_madvise F +GLIBC_2.44 posix_memalign F +GLIBC_2.44 posix_openpt F +GLIBC_2.44 posix_spawn F +GLIBC_2.44 posix_spawn_file_actions_addchdir_np F +GLIBC_2.44 posix_spawn_file_actions_addclose F +GLIBC_2.44 posix_spawn_file_actions_addclosefrom_np F +GLIBC_2.44 posix_spawn_file_actions_adddup2 F +GLIBC_2.44 posix_spawn_file_actions_addfchdir_np F +GLIBC_2.44 posix_spawn_file_actions_addopen F +GLIBC_2.44 posix_spawn_file_actions_addtcsetpgrp_np F +GLIBC_2.44 posix_spawn_file_actions_destroy F +GLIBC_2.44 posix_spawn_file_actions_init F +GLIBC_2.44 posix_spawnattr_destroy F +GLIBC_2.44 posix_spawnattr_getcgroup_np F +GLIBC_2.44 posix_spawnattr_getflags F +GLIBC_2.44 posix_spawnattr_getpgroup F +GLIBC_2.44 posix_spawnattr_getschedparam F +GLIBC_2.44 posix_spawnattr_getschedpolicy F +GLIBC_2.44 posix_spawnattr_getsigdefault F +GLIBC_2.44 posix_spawnattr_getsigmask F +GLIBC_2.44 posix_spawnattr_init F +GLIBC_2.44 posix_spawnattr_setcgroup_np F +GLIBC_2.44 posix_spawnattr_setflags F +GLIBC_2.44 posix_spawnattr_setpgroup F +GLIBC_2.44 posix_spawnattr_setschedparam F +GLIBC_2.44 posix_spawnattr_setschedpolicy F +GLIBC_2.44 posix_spawnattr_setsigdefault F +GLIBC_2.44 posix_spawnattr_setsigmask F +GLIBC_2.44 posix_spawnp F +GLIBC_2.44 ppoll F +GLIBC_2.44 prctl F +GLIBC_2.44 pread F +GLIBC_2.44 pread64 F +GLIBC_2.44 preadv F +GLIBC_2.44 preadv2 F +GLIBC_2.44 preadv64 F +GLIBC_2.44 preadv64v2 F +GLIBC_2.44 printf F +GLIBC_2.44 printf_size F +GLIBC_2.44 printf_size_info F +GLIBC_2.44 prlimit F +GLIBC_2.44 prlimit64 F +GLIBC_2.44 process_madvise F +GLIBC_2.44 process_mrelease F +GLIBC_2.44 process_vm_readv F +GLIBC_2.44 process_vm_writev F +GLIBC_2.44 profil F +GLIBC_2.44 program_invocation_name D 0x4 +GLIBC_2.44 program_invocation_short_name D 0x4 +GLIBC_2.44 pselect F +GLIBC_2.44 psiginfo F +GLIBC_2.44 psignal F +GLIBC_2.44 pthread_attr_destroy F +GLIBC_2.44 pthread_attr_getaffinity_np F +GLIBC_2.44 pthread_attr_getdetachstate F +GLIBC_2.44 pthread_attr_getguardsize F +GLIBC_2.44 pthread_attr_getinheritsched F +GLIBC_2.44 pthread_attr_getschedparam F +GLIBC_2.44 pthread_attr_getschedpolicy F +GLIBC_2.44 pthread_attr_getscope F +GLIBC_2.44 pthread_attr_getsigmask_np F +GLIBC_2.44 pthread_attr_getstack F +GLIBC_2.44 pthread_attr_getstackaddr F +GLIBC_2.44 pthread_attr_getstacksize F +GLIBC_2.44 pthread_attr_init F +GLIBC_2.44 pthread_attr_setaffinity_np F +GLIBC_2.44 pthread_attr_setdetachstate F +GLIBC_2.44 pthread_attr_setguardsize F +GLIBC_2.44 pthread_attr_setinheritsched F +GLIBC_2.44 pthread_attr_setschedparam F +GLIBC_2.44 pthread_attr_setschedpolicy F +GLIBC_2.44 pthread_attr_setscope F +GLIBC_2.44 pthread_attr_setsigmask_np F +GLIBC_2.44 pthread_attr_setstack F +GLIBC_2.44 pthread_attr_setstackaddr F +GLIBC_2.44 pthread_attr_setstacksize F +GLIBC_2.44 pthread_barrier_destroy F +GLIBC_2.44 pthread_barrier_init F +GLIBC_2.44 pthread_barrier_wait F +GLIBC_2.44 pthread_barrierattr_destroy F +GLIBC_2.44 pthread_barrierattr_getpshared F +GLIBC_2.44 pthread_barrierattr_init F +GLIBC_2.44 pthread_barrierattr_setpshared F +GLIBC_2.44 pthread_cancel F +GLIBC_2.44 pthread_clockjoin_np F +GLIBC_2.44 pthread_cond_broadcast F +GLIBC_2.44 pthread_cond_clockwait F +GLIBC_2.44 pthread_cond_destroy F +GLIBC_2.44 pthread_cond_init F +GLIBC_2.44 pthread_cond_signal F +GLIBC_2.44 pthread_cond_timedwait F +GLIBC_2.44 pthread_cond_wait F +GLIBC_2.44 pthread_condattr_destroy F +GLIBC_2.44 pthread_condattr_getclock F +GLIBC_2.44 pthread_condattr_getpshared F +GLIBC_2.44 pthread_condattr_init F +GLIBC_2.44 pthread_condattr_setclock F +GLIBC_2.44 pthread_condattr_setpshared F +GLIBC_2.44 pthread_create F +GLIBC_2.44 pthread_detach F +GLIBC_2.44 pthread_equal F +GLIBC_2.44 pthread_exit F +GLIBC_2.44 pthread_getaffinity_np F +GLIBC_2.44 pthread_getattr_default_np F +GLIBC_2.44 pthread_getattr_np F +GLIBC_2.44 pthread_getconcurrency F +GLIBC_2.44 pthread_getcpuclockid F +GLIBC_2.44 pthread_getname_np F +GLIBC_2.44 pthread_getschedparam F +GLIBC_2.44 pthread_getspecific F +GLIBC_2.44 pthread_gettid_np F +GLIBC_2.44 pthread_join F +GLIBC_2.44 pthread_key_create F +GLIBC_2.44 pthread_key_delete F +GLIBC_2.44 pthread_kill F +GLIBC_2.44 pthread_mutex_clocklock F +GLIBC_2.44 pthread_mutex_consistent F +GLIBC_2.44 pthread_mutex_destroy F +GLIBC_2.44 pthread_mutex_getprioceiling F +GLIBC_2.44 pthread_mutex_init F +GLIBC_2.44 pthread_mutex_lock F +GLIBC_2.44 pthread_mutex_setprioceiling F +GLIBC_2.44 pthread_mutex_timedlock F +GLIBC_2.44 pthread_mutex_trylock F +GLIBC_2.44 pthread_mutex_unlock F +GLIBC_2.44 pthread_mutexattr_destroy F +GLIBC_2.44 pthread_mutexattr_getprioceiling F +GLIBC_2.44 pthread_mutexattr_getprotocol F +GLIBC_2.44 pthread_mutexattr_getpshared F +GLIBC_2.44 pthread_mutexattr_getrobust F +GLIBC_2.44 pthread_mutexattr_gettype F +GLIBC_2.44 pthread_mutexattr_init F +GLIBC_2.44 pthread_mutexattr_setprioceiling F +GLIBC_2.44 pthread_mutexattr_setprotocol F +GLIBC_2.44 pthread_mutexattr_setpshared F +GLIBC_2.44 pthread_mutexattr_setrobust F +GLIBC_2.44 pthread_mutexattr_settype F +GLIBC_2.44 pthread_once F +GLIBC_2.44 pthread_rwlock_clockrdlock F +GLIBC_2.44 pthread_rwlock_clockwrlock F +GLIBC_2.44 pthread_rwlock_destroy F +GLIBC_2.44 pthread_rwlock_init F +GLIBC_2.44 pthread_rwlock_rdlock F +GLIBC_2.44 pthread_rwlock_timedrdlock F +GLIBC_2.44 pthread_rwlock_timedwrlock F +GLIBC_2.44 pthread_rwlock_tryrdlock F +GLIBC_2.44 pthread_rwlock_trywrlock F +GLIBC_2.44 pthread_rwlock_unlock F +GLIBC_2.44 pthread_rwlock_wrlock F +GLIBC_2.44 pthread_rwlockattr_destroy F +GLIBC_2.44 pthread_rwlockattr_getkind_np F +GLIBC_2.44 pthread_rwlockattr_getpshared F +GLIBC_2.44 pthread_rwlockattr_init F +GLIBC_2.44 pthread_rwlockattr_setkind_np F +GLIBC_2.44 pthread_rwlockattr_setpshared F +GLIBC_2.44 pthread_self F +GLIBC_2.44 pthread_setaffinity_np F +GLIBC_2.44 pthread_setattr_default_np F +GLIBC_2.44 pthread_setcancelstate F +GLIBC_2.44 pthread_setcanceltype F +GLIBC_2.44 pthread_setconcurrency F +GLIBC_2.44 pthread_setname_np F +GLIBC_2.44 pthread_setschedparam F +GLIBC_2.44 pthread_setschedprio F +GLIBC_2.44 pthread_setspecific F +GLIBC_2.44 pthread_sigmask F +GLIBC_2.44 pthread_sigqueue F +GLIBC_2.44 pthread_spin_destroy F +GLIBC_2.44 pthread_spin_init F +GLIBC_2.44 pthread_spin_lock F +GLIBC_2.44 pthread_spin_trylock F +GLIBC_2.44 pthread_spin_unlock F +GLIBC_2.44 pthread_testcancel F +GLIBC_2.44 pthread_timedjoin_np F +GLIBC_2.44 pthread_tryjoin_np F +GLIBC_2.44 ptrace F +GLIBC_2.44 ptsname F +GLIBC_2.44 ptsname_r F +GLIBC_2.44 putc F +GLIBC_2.44 putc_unlocked F +GLIBC_2.44 putchar F +GLIBC_2.44 putchar_unlocked F +GLIBC_2.44 putenv F +GLIBC_2.44 putgrent F +GLIBC_2.44 putpwent F +GLIBC_2.44 puts F +GLIBC_2.44 putsgent F +GLIBC_2.44 putspent F +GLIBC_2.44 pututline F +GLIBC_2.44 pututxline F +GLIBC_2.44 putw F +GLIBC_2.44 putwc F +GLIBC_2.44 putwc_unlocked F +GLIBC_2.44 putwchar F +GLIBC_2.44 putwchar_unlocked F +GLIBC_2.44 pvalloc F +GLIBC_2.44 pwrite F +GLIBC_2.44 pwrite64 F +GLIBC_2.44 pwritev F +GLIBC_2.44 pwritev2 F +GLIBC_2.44 pwritev64 F +GLIBC_2.44 pwritev64v2 F +GLIBC_2.44 qecvt F +GLIBC_2.44 qecvt_r F +GLIBC_2.44 qfcvt F +GLIBC_2.44 qfcvt_r F +GLIBC_2.44 qgcvt F +GLIBC_2.44 qsort F +GLIBC_2.44 qsort_r F +GLIBC_2.44 quick_exit F +GLIBC_2.44 quotactl F +GLIBC_2.44 raise F +GLIBC_2.44 rand F +GLIBC_2.44 rand_r F +GLIBC_2.44 random F +GLIBC_2.44 random_r F +GLIBC_2.44 rawmemchr F +GLIBC_2.44 rcmd F +GLIBC_2.44 rcmd_af F +GLIBC_2.44 re_comp F +GLIBC_2.44 re_compile_fastmap F +GLIBC_2.44 re_compile_pattern F +GLIBC_2.44 re_exec F +GLIBC_2.44 re_match F +GLIBC_2.44 re_match_2 F +GLIBC_2.44 re_search F +GLIBC_2.44 re_search_2 F +GLIBC_2.44 re_set_registers F +GLIBC_2.44 re_set_syntax F +GLIBC_2.44 re_syntax_options D 0x4 +GLIBC_2.44 read F +GLIBC_2.44 readahead F +GLIBC_2.44 readdir F +GLIBC_2.44 readdir64 F +GLIBC_2.44 readdir64_r F +GLIBC_2.44 readdir_r F +GLIBC_2.44 readlink F +GLIBC_2.44 readlinkat F +GLIBC_2.44 readv F +GLIBC_2.44 realloc F +GLIBC_2.44 reallocarray F +GLIBC_2.44 realpath F +GLIBC_2.44 reboot F +GLIBC_2.44 recv F +GLIBC_2.44 recvfrom F +GLIBC_2.44 recvmmsg F +GLIBC_2.44 recvmsg F +GLIBC_2.44 regcomp F +GLIBC_2.44 regerror F +GLIBC_2.44 regexec F +GLIBC_2.44 regfree F +GLIBC_2.44 register_printf_function F +GLIBC_2.44 register_printf_modifier F +GLIBC_2.44 register_printf_specifier F +GLIBC_2.44 register_printf_type F +GLIBC_2.44 remap_file_pages F +GLIBC_2.44 remove F +GLIBC_2.44 removexattr F +GLIBC_2.44 remque F +GLIBC_2.44 rename F +GLIBC_2.44 renameat F +GLIBC_2.44 renameat2 F +GLIBC_2.44 res_dnok F +GLIBC_2.44 res_hnok F +GLIBC_2.44 res_mailok F +GLIBC_2.44 res_mkquery F +GLIBC_2.44 res_nmkquery F +GLIBC_2.44 res_nquery F +GLIBC_2.44 res_nquerydomain F +GLIBC_2.44 res_nsearch F +GLIBC_2.44 res_nsend F +GLIBC_2.44 res_ownok F +GLIBC_2.44 res_query F +GLIBC_2.44 res_querydomain F +GLIBC_2.44 res_search F +GLIBC_2.44 res_send F +GLIBC_2.44 revoke F +GLIBC_2.44 rewind F +GLIBC_2.44 rewinddir F +GLIBC_2.44 rexec F +GLIBC_2.44 rexec_af F +GLIBC_2.44 rexecoptions D 0x4 +GLIBC_2.44 rindex F +GLIBC_2.44 rmdir F +GLIBC_2.44 rpmatch F +GLIBC_2.44 rresvport F +GLIBC_2.44 rresvport_af F +GLIBC_2.44 ruserok F +GLIBC_2.44 ruserok_af F +GLIBC_2.44 ruserpass F +GLIBC_2.44 sbrk F +GLIBC_2.44 scalbn F +GLIBC_2.44 scalbnf F +GLIBC_2.44 scalbnl F +GLIBC_2.44 scandir F +GLIBC_2.44 scandir64 F +GLIBC_2.44 scandirat F +GLIBC_2.44 scandirat64 F +GLIBC_2.44 scanf F +GLIBC_2.44 sched_get_priority_max F +GLIBC_2.44 sched_get_priority_min F +GLIBC_2.44 sched_getaffinity F +GLIBC_2.44 sched_getattr F +GLIBC_2.44 sched_getcpu F +GLIBC_2.44 sched_getparam F +GLIBC_2.44 sched_getscheduler F +GLIBC_2.44 sched_rr_get_interval F +GLIBC_2.44 sched_setaffinity F +GLIBC_2.44 sched_setattr F +GLIBC_2.44 sched_setparam F +GLIBC_2.44 sched_setscheduler F +GLIBC_2.44 sched_yield F +GLIBC_2.44 secure_getenv F +GLIBC_2.44 seed48 F +GLIBC_2.44 seed48_r F +GLIBC_2.44 seekdir F +GLIBC_2.44 select F +GLIBC_2.44 sem_clockwait F +GLIBC_2.44 sem_close F +GLIBC_2.44 sem_destroy F +GLIBC_2.44 sem_getvalue F +GLIBC_2.44 sem_init F +GLIBC_2.44 sem_open F +GLIBC_2.44 sem_post F +GLIBC_2.44 sem_timedwait F +GLIBC_2.44 sem_trywait F +GLIBC_2.44 sem_unlink F +GLIBC_2.44 sem_wait F +GLIBC_2.44 semctl F +GLIBC_2.44 semget F +GLIBC_2.44 semop F +GLIBC_2.44 semtimedop F +GLIBC_2.44 send F +GLIBC_2.44 sendfile F +GLIBC_2.44 sendfile64 F +GLIBC_2.44 sendmmsg F +GLIBC_2.44 sendmsg F +GLIBC_2.44 sendto F +GLIBC_2.44 setaliasent F +GLIBC_2.44 setbuf F +GLIBC_2.44 setbuffer F +GLIBC_2.44 setcontext F +GLIBC_2.44 setdomainname F +GLIBC_2.44 setegid F +GLIBC_2.44 setenv F +GLIBC_2.44 seteuid F +GLIBC_2.44 setfsent F +GLIBC_2.44 setfsgid F +GLIBC_2.44 setfsuid F +GLIBC_2.44 setgid F +GLIBC_2.44 setgrent F +GLIBC_2.44 setgroups F +GLIBC_2.44 sethostent F +GLIBC_2.44 sethostid F +GLIBC_2.44 sethostname F +GLIBC_2.44 setipv4sourcefilter F +GLIBC_2.44 setitimer F +GLIBC_2.44 setjmp F +GLIBC_2.44 setlinebuf F +GLIBC_2.44 setlocale F +GLIBC_2.44 setlogin F +GLIBC_2.44 setlogmask F +GLIBC_2.44 setmntent F +GLIBC_2.44 setnetent F +GLIBC_2.44 setnetgrent F +GLIBC_2.44 setns F +GLIBC_2.44 setpgid F +GLIBC_2.44 setpgrp F +GLIBC_2.44 setpriority F +GLIBC_2.44 setprotoent F +GLIBC_2.44 setpwent F +GLIBC_2.44 setregid F +GLIBC_2.44 setresgid F +GLIBC_2.44 setresuid F +GLIBC_2.44 setreuid F +GLIBC_2.44 setrlimit F +GLIBC_2.44 setrlimit64 F +GLIBC_2.44 setrpcent F +GLIBC_2.44 setservent F +GLIBC_2.44 setsgent F +GLIBC_2.44 setsid F +GLIBC_2.44 setsockopt F +GLIBC_2.44 setsourcefilter F +GLIBC_2.44 setspent F +GLIBC_2.44 setstate F +GLIBC_2.44 setstate_r F +GLIBC_2.44 settimeofday F +GLIBC_2.44 setttyent F +GLIBC_2.44 setuid F +GLIBC_2.44 setusershell F +GLIBC_2.44 setutent F +GLIBC_2.44 setutxent F +GLIBC_2.44 setvbuf F +GLIBC_2.44 setxattr F +GLIBC_2.44 sgetsgent F +GLIBC_2.44 sgetsgent_r F +GLIBC_2.44 sgetspent F +GLIBC_2.44 sgetspent_r F +GLIBC_2.44 shm_open F +GLIBC_2.44 shm_unlink F +GLIBC_2.44 shmat F +GLIBC_2.44 shmctl F +GLIBC_2.44 shmdt F +GLIBC_2.44 shmget F +GLIBC_2.44 shutdown F +GLIBC_2.44 sigabbrev_np F +GLIBC_2.44 sigaction F +GLIBC_2.44 sigaddset F +GLIBC_2.44 sigaltstack F +GLIBC_2.44 sigandset F +GLIBC_2.44 sigblock F +GLIBC_2.44 sigdelset F +GLIBC_2.44 sigdescr_np F +GLIBC_2.44 sigemptyset F +GLIBC_2.44 sigfillset F +GLIBC_2.44 siggetmask F +GLIBC_2.44 sighold F +GLIBC_2.44 sigignore F +GLIBC_2.44 siginterrupt F +GLIBC_2.44 sigisemptyset F +GLIBC_2.44 sigismember F +GLIBC_2.44 siglongjmp F +GLIBC_2.44 signal F +GLIBC_2.44 signalfd F +GLIBC_2.44 sigorset F +GLIBC_2.44 sigpause F +GLIBC_2.44 sigpending F +GLIBC_2.44 sigprocmask F +GLIBC_2.44 sigqueue F +GLIBC_2.44 sigrelse F +GLIBC_2.44 sigreturn F +GLIBC_2.44 sigset F +GLIBC_2.44 sigsetmask F +GLIBC_2.44 sigstack F +GLIBC_2.44 sigsuspend F +GLIBC_2.44 sigtimedwait F +GLIBC_2.44 sigwait F +GLIBC_2.44 sigwaitinfo F +GLIBC_2.44 sleep F +GLIBC_2.44 snprintf F +GLIBC_2.44 sockatmark F +GLIBC_2.44 socket F +GLIBC_2.44 socketpair F +GLIBC_2.44 splice F +GLIBC_2.44 sprintf F +GLIBC_2.44 sprofil F +GLIBC_2.44 srand F +GLIBC_2.44 srand48 F +GLIBC_2.44 srand48_r F +GLIBC_2.44 srandom F +GLIBC_2.44 srandom_r F +GLIBC_2.44 sscanf F +GLIBC_2.44 ssignal F +GLIBC_2.44 stat F +GLIBC_2.44 stat64 F +GLIBC_2.44 statfs F +GLIBC_2.44 statfs64 F +GLIBC_2.44 statvfs F +GLIBC_2.44 statvfs64 F +GLIBC_2.44 statx F +GLIBC_2.44 stdc_bit_ceil_uc F +GLIBC_2.44 stdc_bit_ceil_ui F +GLIBC_2.44 stdc_bit_ceil_ul F +GLIBC_2.44 stdc_bit_ceil_ull F +GLIBC_2.44 stdc_bit_ceil_us F +GLIBC_2.44 stdc_bit_floor_uc F +GLIBC_2.44 stdc_bit_floor_ui F +GLIBC_2.44 stdc_bit_floor_ul F +GLIBC_2.44 stdc_bit_floor_ull F +GLIBC_2.44 stdc_bit_floor_us F +GLIBC_2.44 stdc_bit_width_uc F +GLIBC_2.44 stdc_bit_width_ui F +GLIBC_2.44 stdc_bit_width_ul F +GLIBC_2.44 stdc_bit_width_ull F +GLIBC_2.44 stdc_bit_width_us F +GLIBC_2.44 stdc_count_ones_uc F +GLIBC_2.44 stdc_count_ones_ui F +GLIBC_2.44 stdc_count_ones_ul F +GLIBC_2.44 stdc_count_ones_ull F +GLIBC_2.44 stdc_count_ones_us F +GLIBC_2.44 stdc_count_zeros_uc F +GLIBC_2.44 stdc_count_zeros_ui F +GLIBC_2.44 stdc_count_zeros_ul F +GLIBC_2.44 stdc_count_zeros_ull F +GLIBC_2.44 stdc_count_zeros_us F +GLIBC_2.44 stdc_first_leading_one_uc F +GLIBC_2.44 stdc_first_leading_one_ui F +GLIBC_2.44 stdc_first_leading_one_ul F +GLIBC_2.44 stdc_first_leading_one_ull F +GLIBC_2.44 stdc_first_leading_one_us F +GLIBC_2.44 stdc_first_leading_zero_uc F +GLIBC_2.44 stdc_first_leading_zero_ui F +GLIBC_2.44 stdc_first_leading_zero_ul F +GLIBC_2.44 stdc_first_leading_zero_ull F +GLIBC_2.44 stdc_first_leading_zero_us F +GLIBC_2.44 stdc_first_trailing_one_uc F +GLIBC_2.44 stdc_first_trailing_one_ui F +GLIBC_2.44 stdc_first_trailing_one_ul F +GLIBC_2.44 stdc_first_trailing_one_ull F +GLIBC_2.44 stdc_first_trailing_one_us F +GLIBC_2.44 stdc_first_trailing_zero_uc F +GLIBC_2.44 stdc_first_trailing_zero_ui F +GLIBC_2.44 stdc_first_trailing_zero_ul F +GLIBC_2.44 stdc_first_trailing_zero_ull F +GLIBC_2.44 stdc_first_trailing_zero_us F +GLIBC_2.44 stdc_has_single_bit_uc F +GLIBC_2.44 stdc_has_single_bit_ui F +GLIBC_2.44 stdc_has_single_bit_ul F +GLIBC_2.44 stdc_has_single_bit_ull F +GLIBC_2.44 stdc_has_single_bit_us F +GLIBC_2.44 stdc_leading_ones_uc F +GLIBC_2.44 stdc_leading_ones_ui F +GLIBC_2.44 stdc_leading_ones_ul F +GLIBC_2.44 stdc_leading_ones_ull F +GLIBC_2.44 stdc_leading_ones_us F +GLIBC_2.44 stdc_leading_zeros_uc F +GLIBC_2.44 stdc_leading_zeros_ui F +GLIBC_2.44 stdc_leading_zeros_ul F +GLIBC_2.44 stdc_leading_zeros_ull F +GLIBC_2.44 stdc_leading_zeros_us F +GLIBC_2.44 stdc_trailing_ones_uc F +GLIBC_2.44 stdc_trailing_ones_ui F +GLIBC_2.44 stdc_trailing_ones_ul F +GLIBC_2.44 stdc_trailing_ones_ull F +GLIBC_2.44 stdc_trailing_ones_us F +GLIBC_2.44 stdc_trailing_zeros_uc F +GLIBC_2.44 stdc_trailing_zeros_ui F +GLIBC_2.44 stdc_trailing_zeros_ul F +GLIBC_2.44 stdc_trailing_zeros_ull F +GLIBC_2.44 stdc_trailing_zeros_us F +GLIBC_2.44 stderr D 0x4 +GLIBC_2.44 stdin D 0x4 +GLIBC_2.44 stdout D 0x4 +GLIBC_2.44 stpcpy F +GLIBC_2.44 stpncpy F +GLIBC_2.44 strcasecmp F +GLIBC_2.44 strcasecmp_l F +GLIBC_2.44 strcasestr F +GLIBC_2.44 strcat F +GLIBC_2.44 strchr F +GLIBC_2.44 strchrnul F +GLIBC_2.44 strcmp F +GLIBC_2.44 strcoll F +GLIBC_2.44 strcoll_l F +GLIBC_2.44 strcpy F +GLIBC_2.44 strcspn F +GLIBC_2.44 strdup F +GLIBC_2.44 strerror F +GLIBC_2.44 strerror_l F +GLIBC_2.44 strerror_r F +GLIBC_2.44 strerrordesc_np F +GLIBC_2.44 strerrorname_np F +GLIBC_2.44 strfmon F +GLIBC_2.44 strfmon_l F +GLIBC_2.44 strfromd F +GLIBC_2.44 strfromf F +GLIBC_2.44 strfromf128 F +GLIBC_2.44 strfromf32 F +GLIBC_2.44 strfromf32x F +GLIBC_2.44 strfromf64 F +GLIBC_2.44 strfromf64x F +GLIBC_2.44 strfroml F +GLIBC_2.44 strfry F +GLIBC_2.44 strftime F +GLIBC_2.44 strftime_l F +GLIBC_2.44 strlcat F +GLIBC_2.44 strlcpy F +GLIBC_2.44 strlen F +GLIBC_2.44 strncasecmp F +GLIBC_2.44 strncasecmp_l F +GLIBC_2.44 strncat F +GLIBC_2.44 strncmp F +GLIBC_2.44 strncpy F +GLIBC_2.44 strndup F +GLIBC_2.44 strnlen F +GLIBC_2.44 strpbrk F +GLIBC_2.44 strptime F +GLIBC_2.44 strptime_l F +GLIBC_2.44 strrchr F +GLIBC_2.44 strsep F +GLIBC_2.44 strsignal F +GLIBC_2.44 strspn F +GLIBC_2.44 strstr F +GLIBC_2.44 strtod F +GLIBC_2.44 strtod_l F +GLIBC_2.44 strtof F +GLIBC_2.44 strtof128 F +GLIBC_2.44 strtof128_l F +GLIBC_2.44 strtof32 F +GLIBC_2.44 strtof32_l F +GLIBC_2.44 strtof32x F +GLIBC_2.44 strtof32x_l F +GLIBC_2.44 strtof64 F +GLIBC_2.44 strtof64_l F +GLIBC_2.44 strtof64x F +GLIBC_2.44 strtof64x_l F +GLIBC_2.44 strtof_l F +GLIBC_2.44 strtoimax F +GLIBC_2.44 strtok F +GLIBC_2.44 strtok_r F +GLIBC_2.44 strtol F +GLIBC_2.44 strtol_l F +GLIBC_2.44 strtold F +GLIBC_2.44 strtold_l F +GLIBC_2.44 strtoll F +GLIBC_2.44 strtoll_l F +GLIBC_2.44 strtoq F +GLIBC_2.44 strtoul F +GLIBC_2.44 strtoul_l F +GLIBC_2.44 strtoull F +GLIBC_2.44 strtoull_l F +GLIBC_2.44 strtoumax F +GLIBC_2.44 strtouq F +GLIBC_2.44 strverscmp F +GLIBC_2.44 strxfrm F +GLIBC_2.44 strxfrm_l F +GLIBC_2.44 stty F +GLIBC_2.44 swab F +GLIBC_2.44 swapcontext F +GLIBC_2.44 swapoff F +GLIBC_2.44 swapon F +GLIBC_2.44 swprintf F +GLIBC_2.44 swscanf F +GLIBC_2.44 symlink F +GLIBC_2.44 symlinkat F +GLIBC_2.44 sync F +GLIBC_2.44 sync_file_range F +GLIBC_2.44 syncfs F +GLIBC_2.44 syscall F +GLIBC_2.44 sysconf F +GLIBC_2.44 sysinfo F +GLIBC_2.44 syslog F +GLIBC_2.44 system F +GLIBC_2.44 sysv_signal F +GLIBC_2.44 tcdrain F +GLIBC_2.44 tcflow F +GLIBC_2.44 tcflush F +GLIBC_2.44 tcgetattr F +GLIBC_2.44 tcgetpgrp F +GLIBC_2.44 tcgetsid F +GLIBC_2.44 tcsendbreak F +GLIBC_2.44 tcsetattr F +GLIBC_2.44 tcsetpgrp F +GLIBC_2.44 tdelete F +GLIBC_2.44 tdestroy F +GLIBC_2.44 tee F +GLIBC_2.44 telldir F +GLIBC_2.44 tempnam F +GLIBC_2.44 textdomain F +GLIBC_2.44 tfind F +GLIBC_2.44 tgkill F +GLIBC_2.44 thrd_create F +GLIBC_2.44 thrd_current F +GLIBC_2.44 thrd_detach F +GLIBC_2.44 thrd_equal F +GLIBC_2.44 thrd_exit F +GLIBC_2.44 thrd_join F +GLIBC_2.44 thrd_sleep F +GLIBC_2.44 thrd_yield F +GLIBC_2.44 time F +GLIBC_2.44 timegm F +GLIBC_2.44 timelocal F +GLIBC_2.44 timer_create F +GLIBC_2.44 timer_delete F +GLIBC_2.44 timer_getoverrun F +GLIBC_2.44 timer_gettime F +GLIBC_2.44 timer_settime F +GLIBC_2.44 timerfd_create F +GLIBC_2.44 timerfd_gettime F +GLIBC_2.44 timerfd_settime F +GLIBC_2.44 times F +GLIBC_2.44 timespec_get F +GLIBC_2.44 timespec_getres F +GLIBC_2.44 timezone D 0x4 +GLIBC_2.44 tmpfile F +GLIBC_2.44 tmpfile64 F +GLIBC_2.44 tmpnam F +GLIBC_2.44 tmpnam_r F +GLIBC_2.44 toascii F +GLIBC_2.44 tolower F +GLIBC_2.44 tolower_l F +GLIBC_2.44 toupper F +GLIBC_2.44 toupper_l F +GLIBC_2.44 towctrans F +GLIBC_2.44 towctrans_l F +GLIBC_2.44 towlower F +GLIBC_2.44 towlower_l F +GLIBC_2.44 towupper F +GLIBC_2.44 towupper_l F +GLIBC_2.44 truncate F +GLIBC_2.44 truncate64 F +GLIBC_2.44 tsearch F +GLIBC_2.44 tss_create F +GLIBC_2.44 tss_delete F +GLIBC_2.44 tss_get F +GLIBC_2.44 tss_set F +GLIBC_2.44 ttyname F +GLIBC_2.44 ttyname_r F +GLIBC_2.44 ttyslot F +GLIBC_2.44 twalk F +GLIBC_2.44 twalk_r F +GLIBC_2.44 tzname D 0x8 +GLIBC_2.44 tzset F +GLIBC_2.44 uabs F +GLIBC_2.44 ualarm F +GLIBC_2.44 ulabs F +GLIBC_2.44 ulckpwdf F +GLIBC_2.44 ulimit F +GLIBC_2.44 ullabs F +GLIBC_2.44 umask F +GLIBC_2.44 umaxabs F +GLIBC_2.44 umount F +GLIBC_2.44 umount2 F +GLIBC_2.44 uname F +GLIBC_2.44 ungetc F +GLIBC_2.44 ungetwc F +GLIBC_2.44 unlink F +GLIBC_2.44 unlinkat F +GLIBC_2.44 unlockpt F +GLIBC_2.44 unsetenv F +GLIBC_2.44 unshare F +GLIBC_2.44 updwtmp F +GLIBC_2.44 updwtmpx F +GLIBC_2.44 uselocale F +GLIBC_2.44 usleep F +GLIBC_2.44 utime F +GLIBC_2.44 utimensat F +GLIBC_2.44 utimes F +GLIBC_2.44 utmpname F +GLIBC_2.44 utmpxname F +GLIBC_2.44 valloc F +GLIBC_2.44 vasprintf F +GLIBC_2.44 vdprintf F +GLIBC_2.44 verr F +GLIBC_2.44 verrx F +GLIBC_2.44 versionsort F +GLIBC_2.44 versionsort64 F +GLIBC_2.44 vfork F +GLIBC_2.44 vfprintf F +GLIBC_2.44 vfscanf F +GLIBC_2.44 vfwprintf F +GLIBC_2.44 vfwscanf F +GLIBC_2.44 vhangup F +GLIBC_2.44 vlimit F +GLIBC_2.44 vmsplice F +GLIBC_2.44 vprintf F +GLIBC_2.44 vscanf F +GLIBC_2.44 vsnprintf F +GLIBC_2.44 vsprintf F +GLIBC_2.44 vsscanf F +GLIBC_2.44 vswprintf F +GLIBC_2.44 vswscanf F +GLIBC_2.44 vsyslog F +GLIBC_2.44 vwarn F +GLIBC_2.44 vwarnx F +GLIBC_2.44 vwprintf F +GLIBC_2.44 vwscanf F +GLIBC_2.44 wait F +GLIBC_2.44 wait3 F +GLIBC_2.44 wait4 F +GLIBC_2.44 waitid F +GLIBC_2.44 waitpid F +GLIBC_2.44 warn F +GLIBC_2.44 warnx F +GLIBC_2.44 wcpcpy F +GLIBC_2.44 wcpncpy F +GLIBC_2.44 wcrtomb F +GLIBC_2.44 wcscasecmp F +GLIBC_2.44 wcscasecmp_l F +GLIBC_2.44 wcscat F +GLIBC_2.44 wcschr F +GLIBC_2.44 wcschrnul F +GLIBC_2.44 wcscmp F +GLIBC_2.44 wcscoll F +GLIBC_2.44 wcscoll_l F +GLIBC_2.44 wcscpy F +GLIBC_2.44 wcscspn F +GLIBC_2.44 wcsdup F +GLIBC_2.44 wcsftime F +GLIBC_2.44 wcsftime_l F +GLIBC_2.44 wcslcat F +GLIBC_2.44 wcslcpy F +GLIBC_2.44 wcslen F +GLIBC_2.44 wcsncasecmp F +GLIBC_2.44 wcsncasecmp_l F +GLIBC_2.44 wcsncat F +GLIBC_2.44 wcsncmp F +GLIBC_2.44 wcsncpy F +GLIBC_2.44 wcsnlen F +GLIBC_2.44 wcsnrtombs F +GLIBC_2.44 wcspbrk F +GLIBC_2.44 wcsrchr F +GLIBC_2.44 wcsrtombs F +GLIBC_2.44 wcsspn F +GLIBC_2.44 wcsstr F +GLIBC_2.44 wcstod F +GLIBC_2.44 wcstod_l F +GLIBC_2.44 wcstof F +GLIBC_2.44 wcstof128 F +GLIBC_2.44 wcstof128_l F +GLIBC_2.44 wcstof32 F +GLIBC_2.44 wcstof32_l F +GLIBC_2.44 wcstof32x F +GLIBC_2.44 wcstof32x_l F +GLIBC_2.44 wcstof64 F +GLIBC_2.44 wcstof64_l F +GLIBC_2.44 wcstof64x F +GLIBC_2.44 wcstof64x_l F +GLIBC_2.44 wcstof_l F +GLIBC_2.44 wcstoimax F +GLIBC_2.44 wcstok F +GLIBC_2.44 wcstol F +GLIBC_2.44 wcstol_l F +GLIBC_2.44 wcstold F +GLIBC_2.44 wcstold_l F +GLIBC_2.44 wcstoll F +GLIBC_2.44 wcstoll_l F +GLIBC_2.44 wcstombs F +GLIBC_2.44 wcstoq F +GLIBC_2.44 wcstoul F +GLIBC_2.44 wcstoul_l F +GLIBC_2.44 wcstoull F +GLIBC_2.44 wcstoull_l F +GLIBC_2.44 wcstoumax F +GLIBC_2.44 wcstouq F +GLIBC_2.44 wcswcs F +GLIBC_2.44 wcswidth F +GLIBC_2.44 wcsxfrm F +GLIBC_2.44 wcsxfrm_l F +GLIBC_2.44 wctob F +GLIBC_2.44 wctomb F +GLIBC_2.44 wctrans F +GLIBC_2.44 wctrans_l F +GLIBC_2.44 wctype F +GLIBC_2.44 wctype_l F +GLIBC_2.44 wcwidth F +GLIBC_2.44 wmemchr F +GLIBC_2.44 wmemcmp F +GLIBC_2.44 wmemcpy F +GLIBC_2.44 wmemmove F +GLIBC_2.44 wmempcpy F +GLIBC_2.44 wmemset F +GLIBC_2.44 wordexp F +GLIBC_2.44 wordfree F +GLIBC_2.44 wprintf F +GLIBC_2.44 write F +GLIBC_2.44 writev F +GLIBC_2.44 wscanf F diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc_malloc_debug.abilist new file mode 100644 index 0000000000..a4fac9c7ce --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libc_malloc_debug.abilist @@ -0,0 +1,28 @@ +GLIBC_2.44 __free_hook D 0x4 +GLIBC_2.44 __malloc_hook D 0x4 +GLIBC_2.44 __memalign_hook D 0x4 +GLIBC_2.44 __realloc_hook D 0x4 +GLIBC_2.44 aligned_alloc F +GLIBC_2.44 calloc F +GLIBC_2.44 free F +GLIBC_2.44 free_aligned_sized F +GLIBC_2.44 free_sized F +GLIBC_2.44 mallinfo F +GLIBC_2.44 mallinfo2 F +GLIBC_2.44 malloc F +GLIBC_2.44 malloc_info F +GLIBC_2.44 malloc_stats F +GLIBC_2.44 malloc_trim F +GLIBC_2.44 malloc_usable_size F +GLIBC_2.44 mallopt F +GLIBC_2.44 mcheck F +GLIBC_2.44 mcheck_check_all F +GLIBC_2.44 mcheck_pedantic F +GLIBC_2.44 memalign F +GLIBC_2.44 mprobe F +GLIBC_2.44 mtrace F +GLIBC_2.44 muntrace F +GLIBC_2.44 posix_memalign F +GLIBC_2.44 pvalloc F +GLIBC_2.44 realloc F +GLIBC_2.44 valloc F diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libm.abilist new file mode 100644 index 0000000000..9af0280778 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libm.abilist @@ -0,0 +1,1166 @@ +GLIBC_2.44 __clog10 F +GLIBC_2.44 __clog10f F +GLIBC_2.44 __clog10l F +GLIBC_2.44 __finite F +GLIBC_2.44 __finitef F +GLIBC_2.44 __finitel F +GLIBC_2.44 __fpclassify F +GLIBC_2.44 __fpclassifyf F +GLIBC_2.44 __fpclassifyl F +GLIBC_2.44 __iseqsig F +GLIBC_2.44 __iseqsigf F +GLIBC_2.44 __iseqsigl F +GLIBC_2.44 __issignaling F +GLIBC_2.44 __issignalingf F +GLIBC_2.44 __issignalingl F +GLIBC_2.44 __signbit F +GLIBC_2.44 __signbitf F +GLIBC_2.44 __signbitl F +GLIBC_2.44 __signgam D 0x4 +GLIBC_2.44 acos F +GLIBC_2.44 acosf F +GLIBC_2.44 acosf128 F +GLIBC_2.44 acosf32 F +GLIBC_2.44 acosf32x F +GLIBC_2.44 acosf64 F +GLIBC_2.44 acosf64x F +GLIBC_2.44 acosh F +GLIBC_2.44 acoshf F +GLIBC_2.44 acoshf128 F +GLIBC_2.44 acoshf32 F +GLIBC_2.44 acoshf32x F +GLIBC_2.44 acoshf64 F +GLIBC_2.44 acoshf64x F +GLIBC_2.44 acoshl F +GLIBC_2.44 acosl F +GLIBC_2.44 acospi F +GLIBC_2.44 acospif F +GLIBC_2.44 acospif128 F +GLIBC_2.44 acospif32 F +GLIBC_2.44 acospif32x F +GLIBC_2.44 acospif64 F +GLIBC_2.44 acospif64x F +GLIBC_2.44 acospil F +GLIBC_2.44 asin F +GLIBC_2.44 asinf F +GLIBC_2.44 asinf128 F +GLIBC_2.44 asinf32 F +GLIBC_2.44 asinf32x F +GLIBC_2.44 asinf64 F +GLIBC_2.44 asinf64x F +GLIBC_2.44 asinh F +GLIBC_2.44 asinhf F +GLIBC_2.44 asinhf128 F +GLIBC_2.44 asinhf32 F +GLIBC_2.44 asinhf32x F +GLIBC_2.44 asinhf64 F +GLIBC_2.44 asinhf64x F +GLIBC_2.44 asinhl F +GLIBC_2.44 asinl F +GLIBC_2.44 asinpi F +GLIBC_2.44 asinpif F +GLIBC_2.44 asinpif128 F +GLIBC_2.44 asinpif32 F +GLIBC_2.44 asinpif32x F +GLIBC_2.44 asinpif64 F +GLIBC_2.44 asinpif64x F +GLIBC_2.44 asinpil F +GLIBC_2.44 atan F +GLIBC_2.44 atan2 F +GLIBC_2.44 atan2f F +GLIBC_2.44 atan2f128 F +GLIBC_2.44 atan2f32 F +GLIBC_2.44 atan2f32x F +GLIBC_2.44 atan2f64 F +GLIBC_2.44 atan2f64x F +GLIBC_2.44 atan2l F +GLIBC_2.44 atan2pi F +GLIBC_2.44 atan2pif F +GLIBC_2.44 atan2pif128 F +GLIBC_2.44 atan2pif32 F +GLIBC_2.44 atan2pif32x F +GLIBC_2.44 atan2pif64 F +GLIBC_2.44 atan2pif64x F +GLIBC_2.44 atan2pil F +GLIBC_2.44 atanf F +GLIBC_2.44 atanf128 F +GLIBC_2.44 atanf32 F +GLIBC_2.44 atanf32x F +GLIBC_2.44 atanf64 F +GLIBC_2.44 atanf64x F +GLIBC_2.44 atanh F +GLIBC_2.44 atanhf F +GLIBC_2.44 atanhf128 F +GLIBC_2.44 atanhf32 F +GLIBC_2.44 atanhf32x F +GLIBC_2.44 atanhf64 F +GLIBC_2.44 atanhf64x F +GLIBC_2.44 atanhl F +GLIBC_2.44 atanl F +GLIBC_2.44 atanpi F +GLIBC_2.44 atanpif F +GLIBC_2.44 atanpif128 F +GLIBC_2.44 atanpif32 F +GLIBC_2.44 atanpif32x F +GLIBC_2.44 atanpif64 F +GLIBC_2.44 atanpif64x F +GLIBC_2.44 atanpil F +GLIBC_2.44 cabs F +GLIBC_2.44 cabsf F +GLIBC_2.44 cabsf128 F +GLIBC_2.44 cabsf32 F +GLIBC_2.44 cabsf32x F +GLIBC_2.44 cabsf64 F +GLIBC_2.44 cabsf64x F +GLIBC_2.44 cabsl F +GLIBC_2.44 cacos F +GLIBC_2.44 cacosf F +GLIBC_2.44 cacosf128 F +GLIBC_2.44 cacosf32 F +GLIBC_2.44 cacosf32x F +GLIBC_2.44 cacosf64 F +GLIBC_2.44 cacosf64x F +GLIBC_2.44 cacosh F +GLIBC_2.44 cacoshf F +GLIBC_2.44 cacoshf128 F +GLIBC_2.44 cacoshf32 F +GLIBC_2.44 cacoshf32x F +GLIBC_2.44 cacoshf64 F +GLIBC_2.44 cacoshf64x F +GLIBC_2.44 cacoshl F +GLIBC_2.44 cacosl F +GLIBC_2.44 canonicalize F +GLIBC_2.44 canonicalizef F +GLIBC_2.44 canonicalizef128 F +GLIBC_2.44 canonicalizef32 F +GLIBC_2.44 canonicalizef32x F +GLIBC_2.44 canonicalizef64 F +GLIBC_2.44 canonicalizef64x F +GLIBC_2.44 canonicalizel F +GLIBC_2.44 carg F +GLIBC_2.44 cargf F +GLIBC_2.44 cargf128 F +GLIBC_2.44 cargf32 F +GLIBC_2.44 cargf32x F +GLIBC_2.44 cargf64 F +GLIBC_2.44 cargf64x F +GLIBC_2.44 cargl F +GLIBC_2.44 casin F +GLIBC_2.44 casinf F +GLIBC_2.44 casinf128 F +GLIBC_2.44 casinf32 F +GLIBC_2.44 casinf32x F +GLIBC_2.44 casinf64 F +GLIBC_2.44 casinf64x F +GLIBC_2.44 casinh F +GLIBC_2.44 casinhf F +GLIBC_2.44 casinhf128 F +GLIBC_2.44 casinhf32 F +GLIBC_2.44 casinhf32x F +GLIBC_2.44 casinhf64 F +GLIBC_2.44 casinhf64x F +GLIBC_2.44 casinhl F +GLIBC_2.44 casinl F +GLIBC_2.44 catan F +GLIBC_2.44 catanf F +GLIBC_2.44 catanf128 F +GLIBC_2.44 catanf32 F +GLIBC_2.44 catanf32x F +GLIBC_2.44 catanf64 F +GLIBC_2.44 catanf64x F +GLIBC_2.44 catanh F +GLIBC_2.44 catanhf F +GLIBC_2.44 catanhf128 F +GLIBC_2.44 catanhf32 F +GLIBC_2.44 catanhf32x F +GLIBC_2.44 catanhf64 F +GLIBC_2.44 catanhf64x F +GLIBC_2.44 catanhl F +GLIBC_2.44 catanl F +GLIBC_2.44 cbrt F +GLIBC_2.44 cbrtf F +GLIBC_2.44 cbrtf128 F +GLIBC_2.44 cbrtf32 F +GLIBC_2.44 cbrtf32x F +GLIBC_2.44 cbrtf64 F +GLIBC_2.44 cbrtf64x F +GLIBC_2.44 cbrtl F +GLIBC_2.44 ccos F +GLIBC_2.44 ccosf F +GLIBC_2.44 ccosf128 F +GLIBC_2.44 ccosf32 F +GLIBC_2.44 ccosf32x F +GLIBC_2.44 ccosf64 F +GLIBC_2.44 ccosf64x F +GLIBC_2.44 ccosh F +GLIBC_2.44 ccoshf F +GLIBC_2.44 ccoshf128 F +GLIBC_2.44 ccoshf32 F +GLIBC_2.44 ccoshf32x F +GLIBC_2.44 ccoshf64 F +GLIBC_2.44 ccoshf64x F +GLIBC_2.44 ccoshl F +GLIBC_2.44 ccosl F +GLIBC_2.44 ceil F +GLIBC_2.44 ceilf F +GLIBC_2.44 ceilf128 F +GLIBC_2.44 ceilf32 F +GLIBC_2.44 ceilf32x F +GLIBC_2.44 ceilf64 F +GLIBC_2.44 ceilf64x F +GLIBC_2.44 ceill F +GLIBC_2.44 cexp F +GLIBC_2.44 cexpf F +GLIBC_2.44 cexpf128 F +GLIBC_2.44 cexpf32 F +GLIBC_2.44 cexpf32x F +GLIBC_2.44 cexpf64 F +GLIBC_2.44 cexpf64x F +GLIBC_2.44 cexpl F +GLIBC_2.44 cimag F +GLIBC_2.44 cimagf F +GLIBC_2.44 cimagf128 F +GLIBC_2.44 cimagf32 F +GLIBC_2.44 cimagf32x F +GLIBC_2.44 cimagf64 F +GLIBC_2.44 cimagf64x F +GLIBC_2.44 cimagl F +GLIBC_2.44 clog F +GLIBC_2.44 clog10 F +GLIBC_2.44 clog10f F +GLIBC_2.44 clog10f128 F +GLIBC_2.44 clog10f32 F +GLIBC_2.44 clog10f32x F +GLIBC_2.44 clog10f64 F +GLIBC_2.44 clog10f64x F +GLIBC_2.44 clog10l F +GLIBC_2.44 clogf F +GLIBC_2.44 clogf128 F +GLIBC_2.44 clogf32 F +GLIBC_2.44 clogf32x F +GLIBC_2.44 clogf64 F +GLIBC_2.44 clogf64x F +GLIBC_2.44 clogl F +GLIBC_2.44 compoundn F +GLIBC_2.44 compoundnf F +GLIBC_2.44 compoundnf128 F +GLIBC_2.44 compoundnf32 F +GLIBC_2.44 compoundnf32x F +GLIBC_2.44 compoundnf64 F +GLIBC_2.44 compoundnf64x F +GLIBC_2.44 compoundnl F +GLIBC_2.44 conj F +GLIBC_2.44 conjf F +GLIBC_2.44 conjf128 F +GLIBC_2.44 conjf32 F +GLIBC_2.44 conjf32x F +GLIBC_2.44 conjf64 F +GLIBC_2.44 conjf64x F +GLIBC_2.44 conjl F +GLIBC_2.44 copysign F +GLIBC_2.44 copysignf F +GLIBC_2.44 copysignf128 F +GLIBC_2.44 copysignf32 F +GLIBC_2.44 copysignf32x F +GLIBC_2.44 copysignf64 F +GLIBC_2.44 copysignf64x F +GLIBC_2.44 copysignl F +GLIBC_2.44 cos F +GLIBC_2.44 cosf F +GLIBC_2.44 cosf128 F +GLIBC_2.44 cosf32 F +GLIBC_2.44 cosf32x F +GLIBC_2.44 cosf64 F +GLIBC_2.44 cosf64x F +GLIBC_2.44 cosh F +GLIBC_2.44 coshf F +GLIBC_2.44 coshf128 F +GLIBC_2.44 coshf32 F +GLIBC_2.44 coshf32x F +GLIBC_2.44 coshf64 F +GLIBC_2.44 coshf64x F +GLIBC_2.44 coshl F +GLIBC_2.44 cosl F +GLIBC_2.44 cospi F +GLIBC_2.44 cospif F +GLIBC_2.44 cospif128 F +GLIBC_2.44 cospif32 F +GLIBC_2.44 cospif32x F +GLIBC_2.44 cospif64 F +GLIBC_2.44 cospif64x F +GLIBC_2.44 cospil F +GLIBC_2.44 cpow F +GLIBC_2.44 cpowf F +GLIBC_2.44 cpowf128 F +GLIBC_2.44 cpowf32 F +GLIBC_2.44 cpowf32x F +GLIBC_2.44 cpowf64 F +GLIBC_2.44 cpowf64x F +GLIBC_2.44 cpowl F +GLIBC_2.44 cproj F +GLIBC_2.44 cprojf F +GLIBC_2.44 cprojf128 F +GLIBC_2.44 cprojf32 F +GLIBC_2.44 cprojf32x F +GLIBC_2.44 cprojf64 F +GLIBC_2.44 cprojf64x F +GLIBC_2.44 cprojl F +GLIBC_2.44 creal F +GLIBC_2.44 crealf F +GLIBC_2.44 crealf128 F +GLIBC_2.44 crealf32 F +GLIBC_2.44 crealf32x F +GLIBC_2.44 crealf64 F +GLIBC_2.44 crealf64x F +GLIBC_2.44 creall F +GLIBC_2.44 csin F +GLIBC_2.44 csinf F +GLIBC_2.44 csinf128 F +GLIBC_2.44 csinf32 F +GLIBC_2.44 csinf32x F +GLIBC_2.44 csinf64 F +GLIBC_2.44 csinf64x F +GLIBC_2.44 csinh F +GLIBC_2.44 csinhf F +GLIBC_2.44 csinhf128 F +GLIBC_2.44 csinhf32 F +GLIBC_2.44 csinhf32x F +GLIBC_2.44 csinhf64 F +GLIBC_2.44 csinhf64x F +GLIBC_2.44 csinhl F +GLIBC_2.44 csinl F +GLIBC_2.44 csqrt F +GLIBC_2.44 csqrtf F +GLIBC_2.44 csqrtf128 F +GLIBC_2.44 csqrtf32 F +GLIBC_2.44 csqrtf32x F +GLIBC_2.44 csqrtf64 F +GLIBC_2.44 csqrtf64x F +GLIBC_2.44 csqrtl F +GLIBC_2.44 ctan F +GLIBC_2.44 ctanf F +GLIBC_2.44 ctanf128 F +GLIBC_2.44 ctanf32 F +GLIBC_2.44 ctanf32x F +GLIBC_2.44 ctanf64 F +GLIBC_2.44 ctanf64x F +GLIBC_2.44 ctanh F +GLIBC_2.44 ctanhf F +GLIBC_2.44 ctanhf128 F +GLIBC_2.44 ctanhf32 F +GLIBC_2.44 ctanhf32x F +GLIBC_2.44 ctanhf64 F +GLIBC_2.44 ctanhf64x F +GLIBC_2.44 ctanhl F +GLIBC_2.44 ctanl F +GLIBC_2.44 daddl F +GLIBC_2.44 ddivl F +GLIBC_2.44 dfmal F +GLIBC_2.44 dmull F +GLIBC_2.44 drem F +GLIBC_2.44 dremf F +GLIBC_2.44 dreml F +GLIBC_2.44 dsqrtl F +GLIBC_2.44 dsubl F +GLIBC_2.44 erf F +GLIBC_2.44 erfc F +GLIBC_2.44 erfcf F +GLIBC_2.44 erfcf128 F +GLIBC_2.44 erfcf32 F +GLIBC_2.44 erfcf32x F +GLIBC_2.44 erfcf64 F +GLIBC_2.44 erfcf64x F +GLIBC_2.44 erfcl F +GLIBC_2.44 erff F +GLIBC_2.44 erff128 F +GLIBC_2.44 erff32 F +GLIBC_2.44 erff32x F +GLIBC_2.44 erff64 F +GLIBC_2.44 erff64x F +GLIBC_2.44 erfl F +GLIBC_2.44 exp F +GLIBC_2.44 exp10 F +GLIBC_2.44 exp10f F +GLIBC_2.44 exp10f128 F +GLIBC_2.44 exp10f32 F +GLIBC_2.44 exp10f32x F +GLIBC_2.44 exp10f64 F +GLIBC_2.44 exp10f64x F +GLIBC_2.44 exp10l F +GLIBC_2.44 exp10m1 F +GLIBC_2.44 exp10m1f F +GLIBC_2.44 exp10m1f128 F +GLIBC_2.44 exp10m1f32 F +GLIBC_2.44 exp10m1f32x F +GLIBC_2.44 exp10m1f64 F +GLIBC_2.44 exp10m1f64x F +GLIBC_2.44 exp10m1l F +GLIBC_2.44 exp2 F +GLIBC_2.44 exp2f F +GLIBC_2.44 exp2f128 F +GLIBC_2.44 exp2f32 F +GLIBC_2.44 exp2f32x F +GLIBC_2.44 exp2f64 F +GLIBC_2.44 exp2f64x F +GLIBC_2.44 exp2l F +GLIBC_2.44 exp2m1 F +GLIBC_2.44 exp2m1f F +GLIBC_2.44 exp2m1f128 F +GLIBC_2.44 exp2m1f32 F +GLIBC_2.44 exp2m1f32x F +GLIBC_2.44 exp2m1f64 F +GLIBC_2.44 exp2m1f64x F +GLIBC_2.44 exp2m1l F +GLIBC_2.44 expf F +GLIBC_2.44 expf128 F +GLIBC_2.44 expf32 F +GLIBC_2.44 expf32x F +GLIBC_2.44 expf64 F +GLIBC_2.44 expf64x F +GLIBC_2.44 expl F +GLIBC_2.44 expm1 F +GLIBC_2.44 expm1f F +GLIBC_2.44 expm1f128 F +GLIBC_2.44 expm1f32 F +GLIBC_2.44 expm1f32x F +GLIBC_2.44 expm1f64 F +GLIBC_2.44 expm1f64x F +GLIBC_2.44 expm1l F +GLIBC_2.44 f32addf128 F +GLIBC_2.44 f32addf32x F +GLIBC_2.44 f32addf64 F +GLIBC_2.44 f32addf64x F +GLIBC_2.44 f32divf128 F +GLIBC_2.44 f32divf32x F +GLIBC_2.44 f32divf64 F +GLIBC_2.44 f32divf64x F +GLIBC_2.44 f32fmaf128 F +GLIBC_2.44 f32fmaf32x F +GLIBC_2.44 f32fmaf64 F +GLIBC_2.44 f32fmaf64x F +GLIBC_2.44 f32mulf128 F +GLIBC_2.44 f32mulf32x F +GLIBC_2.44 f32mulf64 F +GLIBC_2.44 f32mulf64x F +GLIBC_2.44 f32sqrtf128 F +GLIBC_2.44 f32sqrtf32x F +GLIBC_2.44 f32sqrtf64 F +GLIBC_2.44 f32sqrtf64x F +GLIBC_2.44 f32subf128 F +GLIBC_2.44 f32subf32x F +GLIBC_2.44 f32subf64 F +GLIBC_2.44 f32subf64x F +GLIBC_2.44 f32xaddf128 F +GLIBC_2.44 f32xaddf64 F +GLIBC_2.44 f32xaddf64x F +GLIBC_2.44 f32xdivf128 F +GLIBC_2.44 f32xdivf64 F +GLIBC_2.44 f32xdivf64x F +GLIBC_2.44 f32xfmaf128 F +GLIBC_2.44 f32xfmaf64 F +GLIBC_2.44 f32xfmaf64x F +GLIBC_2.44 f32xmulf128 F +GLIBC_2.44 f32xmulf64 F +GLIBC_2.44 f32xmulf64x F +GLIBC_2.44 f32xsqrtf128 F +GLIBC_2.44 f32xsqrtf64 F +GLIBC_2.44 f32xsqrtf64x F +GLIBC_2.44 f32xsubf128 F +GLIBC_2.44 f32xsubf64 F +GLIBC_2.44 f32xsubf64x F +GLIBC_2.44 f64addf128 F +GLIBC_2.44 f64addf64x F +GLIBC_2.44 f64divf128 F +GLIBC_2.44 f64divf64x F +GLIBC_2.44 f64fmaf128 F +GLIBC_2.44 f64fmaf64x F +GLIBC_2.44 f64mulf128 F +GLIBC_2.44 f64mulf64x F +GLIBC_2.44 f64sqrtf128 F +GLIBC_2.44 f64sqrtf64x F +GLIBC_2.44 f64subf128 F +GLIBC_2.44 f64subf64x F +GLIBC_2.44 f64xaddf128 F +GLIBC_2.44 f64xdivf128 F +GLIBC_2.44 f64xfmaf128 F +GLIBC_2.44 f64xmulf128 F +GLIBC_2.44 f64xsqrtf128 F +GLIBC_2.44 f64xsubf128 F +GLIBC_2.44 fabs F +GLIBC_2.44 fabsf F +GLIBC_2.44 fabsf128 F +GLIBC_2.44 fabsf32 F +GLIBC_2.44 fabsf32x F +GLIBC_2.44 fabsf64 F +GLIBC_2.44 fabsf64x F +GLIBC_2.44 fabsl F +GLIBC_2.44 fadd F +GLIBC_2.44 faddl F +GLIBC_2.44 fdim F +GLIBC_2.44 fdimf F +GLIBC_2.44 fdimf128 F +GLIBC_2.44 fdimf32 F +GLIBC_2.44 fdimf32x F +GLIBC_2.44 fdimf64 F +GLIBC_2.44 fdimf64x F +GLIBC_2.44 fdiml F +GLIBC_2.44 fdiv F +GLIBC_2.44 fdivl F +GLIBC_2.44 feclearexcept F +GLIBC_2.44 fedisableexcept F +GLIBC_2.44 feenableexcept F +GLIBC_2.44 fegetenv F +GLIBC_2.44 fegetexcept F +GLIBC_2.44 fegetexceptflag F +GLIBC_2.44 fegetmode F +GLIBC_2.44 fegetround F +GLIBC_2.44 feholdexcept F +GLIBC_2.44 feraiseexcept F +GLIBC_2.44 fesetenv F +GLIBC_2.44 fesetexcept F +GLIBC_2.44 fesetexceptflag F +GLIBC_2.44 fesetmode F +GLIBC_2.44 fesetround F +GLIBC_2.44 fetestexcept F +GLIBC_2.44 fetestexceptflag F +GLIBC_2.44 feupdateenv F +GLIBC_2.44 ffma F +GLIBC_2.44 ffmal F +GLIBC_2.44 finite F +GLIBC_2.44 finitef F +GLIBC_2.44 finitel F +GLIBC_2.44 floor F +GLIBC_2.44 floorf F +GLIBC_2.44 floorf128 F +GLIBC_2.44 floorf32 F +GLIBC_2.44 floorf32x F +GLIBC_2.44 floorf64 F +GLIBC_2.44 floorf64x F +GLIBC_2.44 floorl F +GLIBC_2.44 fma F +GLIBC_2.44 fmaf F +GLIBC_2.44 fmaf128 F +GLIBC_2.44 fmaf32 F +GLIBC_2.44 fmaf32x F +GLIBC_2.44 fmaf64 F +GLIBC_2.44 fmaf64x F +GLIBC_2.44 fmal F +GLIBC_2.44 fmax F +GLIBC_2.44 fmaxf F +GLIBC_2.44 fmaxf128 F +GLIBC_2.44 fmaxf32 F +GLIBC_2.44 fmaxf32x F +GLIBC_2.44 fmaxf64 F +GLIBC_2.44 fmaxf64x F +GLIBC_2.44 fmaximum F +GLIBC_2.44 fmaximum_mag F +GLIBC_2.44 fmaximum_mag_num F +GLIBC_2.44 fmaximum_mag_numf F +GLIBC_2.44 fmaximum_mag_numf128 F +GLIBC_2.44 fmaximum_mag_numf32 F +GLIBC_2.44 fmaximum_mag_numf32x F +GLIBC_2.44 fmaximum_mag_numf64 F +GLIBC_2.44 fmaximum_mag_numf64x F +GLIBC_2.44 fmaximum_mag_numl F +GLIBC_2.44 fmaximum_magf F +GLIBC_2.44 fmaximum_magf128 F +GLIBC_2.44 fmaximum_magf32 F +GLIBC_2.44 fmaximum_magf32x F +GLIBC_2.44 fmaximum_magf64 F +GLIBC_2.44 fmaximum_magf64x F +GLIBC_2.44 fmaximum_magl F +GLIBC_2.44 fmaximum_num F +GLIBC_2.44 fmaximum_numf F +GLIBC_2.44 fmaximum_numf128 F +GLIBC_2.44 fmaximum_numf32 F +GLIBC_2.44 fmaximum_numf32x F +GLIBC_2.44 fmaximum_numf64 F +GLIBC_2.44 fmaximum_numf64x F +GLIBC_2.44 fmaximum_numl F +GLIBC_2.44 fmaximumf F +GLIBC_2.44 fmaximumf128 F +GLIBC_2.44 fmaximumf32 F +GLIBC_2.44 fmaximumf32x F +GLIBC_2.44 fmaximumf64 F +GLIBC_2.44 fmaximumf64x F +GLIBC_2.44 fmaximuml F +GLIBC_2.44 fmaxl F +GLIBC_2.44 fmaxmag F +GLIBC_2.44 fmaxmagf F +GLIBC_2.44 fmaxmagf128 F +GLIBC_2.44 fmaxmagf32 F +GLIBC_2.44 fmaxmagf32x F +GLIBC_2.44 fmaxmagf64 F +GLIBC_2.44 fmaxmagf64x F +GLIBC_2.44 fmaxmagl F +GLIBC_2.44 fmin F +GLIBC_2.44 fminf F +GLIBC_2.44 fminf128 F +GLIBC_2.44 fminf32 F +GLIBC_2.44 fminf32x F +GLIBC_2.44 fminf64 F +GLIBC_2.44 fminf64x F +GLIBC_2.44 fminimum F +GLIBC_2.44 fminimum_mag F +GLIBC_2.44 fminimum_mag_num F +GLIBC_2.44 fminimum_mag_numf F +GLIBC_2.44 fminimum_mag_numf128 F +GLIBC_2.44 fminimum_mag_numf32 F +GLIBC_2.44 fminimum_mag_numf32x F +GLIBC_2.44 fminimum_mag_numf64 F +GLIBC_2.44 fminimum_mag_numf64x F +GLIBC_2.44 fminimum_mag_numl F +GLIBC_2.44 fminimum_magf F +GLIBC_2.44 fminimum_magf128 F +GLIBC_2.44 fminimum_magf32 F +GLIBC_2.44 fminimum_magf32x F +GLIBC_2.44 fminimum_magf64 F +GLIBC_2.44 fminimum_magf64x F +GLIBC_2.44 fminimum_magl F +GLIBC_2.44 fminimum_num F +GLIBC_2.44 fminimum_numf F +GLIBC_2.44 fminimum_numf128 F +GLIBC_2.44 fminimum_numf32 F +GLIBC_2.44 fminimum_numf32x F +GLIBC_2.44 fminimum_numf64 F +GLIBC_2.44 fminimum_numf64x F +GLIBC_2.44 fminimum_numl F +GLIBC_2.44 fminimumf F +GLIBC_2.44 fminimumf128 F +GLIBC_2.44 fminimumf32 F +GLIBC_2.44 fminimumf32x F +GLIBC_2.44 fminimumf64 F +GLIBC_2.44 fminimumf64x F +GLIBC_2.44 fminimuml F +GLIBC_2.44 fminl F +GLIBC_2.44 fminmag F +GLIBC_2.44 fminmagf F +GLIBC_2.44 fminmagf128 F +GLIBC_2.44 fminmagf32 F +GLIBC_2.44 fminmagf32x F +GLIBC_2.44 fminmagf64 F +GLIBC_2.44 fminmagf64x F +GLIBC_2.44 fminmagl F +GLIBC_2.44 fmod F +GLIBC_2.44 fmodf F +GLIBC_2.44 fmodf128 F +GLIBC_2.44 fmodf32 F +GLIBC_2.44 fmodf32x F +GLIBC_2.44 fmodf64 F +GLIBC_2.44 fmodf64x F +GLIBC_2.44 fmodl F +GLIBC_2.44 fmul F +GLIBC_2.44 fmull F +GLIBC_2.44 frexp F +GLIBC_2.44 frexpf F +GLIBC_2.44 frexpf128 F +GLIBC_2.44 frexpf32 F +GLIBC_2.44 frexpf32x F +GLIBC_2.44 frexpf64 F +GLIBC_2.44 frexpf64x F +GLIBC_2.44 frexpl F +GLIBC_2.44 fromfp F +GLIBC_2.44 fromfpf F +GLIBC_2.44 fromfpf128 F +GLIBC_2.44 fromfpf32 F +GLIBC_2.44 fromfpf32x F +GLIBC_2.44 fromfpf64 F +GLIBC_2.44 fromfpf64x F +GLIBC_2.44 fromfpl F +GLIBC_2.44 fromfpx F +GLIBC_2.44 fromfpxf F +GLIBC_2.44 fromfpxf128 F +GLIBC_2.44 fromfpxf32 F +GLIBC_2.44 fromfpxf32x F +GLIBC_2.44 fromfpxf64 F +GLIBC_2.44 fromfpxf64x F +GLIBC_2.44 fromfpxl F +GLIBC_2.44 fsqrt F +GLIBC_2.44 fsqrtl F +GLIBC_2.44 fsub F +GLIBC_2.44 fsubl F +GLIBC_2.44 gamma F +GLIBC_2.44 gammaf F +GLIBC_2.44 gammal F +GLIBC_2.44 getpayload F +GLIBC_2.44 getpayloadf F +GLIBC_2.44 getpayloadf128 F +GLIBC_2.44 getpayloadf32 F +GLIBC_2.44 getpayloadf32x F +GLIBC_2.44 getpayloadf64 F +GLIBC_2.44 getpayloadf64x F +GLIBC_2.44 getpayloadl F +GLIBC_2.44 hypot F +GLIBC_2.44 hypotf F +GLIBC_2.44 hypotf128 F +GLIBC_2.44 hypotf32 F +GLIBC_2.44 hypotf32x F +GLIBC_2.44 hypotf64 F +GLIBC_2.44 hypotf64x F +GLIBC_2.44 hypotl F +GLIBC_2.44 ilogb F +GLIBC_2.44 ilogbf F +GLIBC_2.44 ilogbf128 F +GLIBC_2.44 ilogbf32 F +GLIBC_2.44 ilogbf32x F +GLIBC_2.44 ilogbf64 F +GLIBC_2.44 ilogbf64x F +GLIBC_2.44 ilogbl F +GLIBC_2.44 j0 F +GLIBC_2.44 j0f F +GLIBC_2.44 j0f128 F +GLIBC_2.44 j0f32 F +GLIBC_2.44 j0f32x F +GLIBC_2.44 j0f64 F +GLIBC_2.44 j0f64x F +GLIBC_2.44 j0l F +GLIBC_2.44 j1 F +GLIBC_2.44 j1f F +GLIBC_2.44 j1f128 F +GLIBC_2.44 j1f32 F +GLIBC_2.44 j1f32x F +GLIBC_2.44 j1f64 F +GLIBC_2.44 j1f64x F +GLIBC_2.44 j1l F +GLIBC_2.44 jn F +GLIBC_2.44 jnf F +GLIBC_2.44 jnf128 F +GLIBC_2.44 jnf32 F +GLIBC_2.44 jnf32x F +GLIBC_2.44 jnf64 F +GLIBC_2.44 jnf64x F +GLIBC_2.44 jnl F +GLIBC_2.44 ldexp F +GLIBC_2.44 ldexpf F +GLIBC_2.44 ldexpf128 F +GLIBC_2.44 ldexpf32 F +GLIBC_2.44 ldexpf32x F +GLIBC_2.44 ldexpf64 F +GLIBC_2.44 ldexpf64x F +GLIBC_2.44 ldexpl F +GLIBC_2.44 lgamma F +GLIBC_2.44 lgamma_r F +GLIBC_2.44 lgammaf F +GLIBC_2.44 lgammaf128 F +GLIBC_2.44 lgammaf128_r F +GLIBC_2.44 lgammaf32 F +GLIBC_2.44 lgammaf32_r F +GLIBC_2.44 lgammaf32x F +GLIBC_2.44 lgammaf32x_r F +GLIBC_2.44 lgammaf64 F +GLIBC_2.44 lgammaf64_r F +GLIBC_2.44 lgammaf64x F +GLIBC_2.44 lgammaf64x_r F +GLIBC_2.44 lgammaf_r F +GLIBC_2.44 lgammal F +GLIBC_2.44 lgammal_r F +GLIBC_2.44 llogb F +GLIBC_2.44 llogbf F +GLIBC_2.44 llogbf128 F +GLIBC_2.44 llogbf32 F +GLIBC_2.44 llogbf32x F +GLIBC_2.44 llogbf64 F +GLIBC_2.44 llogbf64x F +GLIBC_2.44 llogbl F +GLIBC_2.44 llrint F +GLIBC_2.44 llrintf F +GLIBC_2.44 llrintf128 F +GLIBC_2.44 llrintf32 F +GLIBC_2.44 llrintf32x F +GLIBC_2.44 llrintf64 F +GLIBC_2.44 llrintf64x F +GLIBC_2.44 llrintl F +GLIBC_2.44 llround F +GLIBC_2.44 llroundf F +GLIBC_2.44 llroundf128 F +GLIBC_2.44 llroundf32 F +GLIBC_2.44 llroundf32x F +GLIBC_2.44 llroundf64 F +GLIBC_2.44 llroundf64x F +GLIBC_2.44 llroundl F +GLIBC_2.44 log F +GLIBC_2.44 log10 F +GLIBC_2.44 log10f F +GLIBC_2.44 log10f128 F +GLIBC_2.44 log10f32 F +GLIBC_2.44 log10f32x F +GLIBC_2.44 log10f64 F +GLIBC_2.44 log10f64x F +GLIBC_2.44 log10l F +GLIBC_2.44 log10p1 F +GLIBC_2.44 log10p1f F +GLIBC_2.44 log10p1f128 F +GLIBC_2.44 log10p1f32 F +GLIBC_2.44 log10p1f32x F +GLIBC_2.44 log10p1f64 F +GLIBC_2.44 log10p1f64x F +GLIBC_2.44 log10p1l F +GLIBC_2.44 log1p F +GLIBC_2.44 log1pf F +GLIBC_2.44 log1pf128 F +GLIBC_2.44 log1pf32 F +GLIBC_2.44 log1pf32x F +GLIBC_2.44 log1pf64 F +GLIBC_2.44 log1pf64x F +GLIBC_2.44 log1pl F +GLIBC_2.44 log2 F +GLIBC_2.44 log2f F +GLIBC_2.44 log2f128 F +GLIBC_2.44 log2f32 F +GLIBC_2.44 log2f32x F +GLIBC_2.44 log2f64 F +GLIBC_2.44 log2f64x F +GLIBC_2.44 log2l F +GLIBC_2.44 log2p1 F +GLIBC_2.44 log2p1f F +GLIBC_2.44 log2p1f128 F +GLIBC_2.44 log2p1f32 F +GLIBC_2.44 log2p1f32x F +GLIBC_2.44 log2p1f64 F +GLIBC_2.44 log2p1f64x F +GLIBC_2.44 log2p1l F +GLIBC_2.44 logb F +GLIBC_2.44 logbf F +GLIBC_2.44 logbf128 F +GLIBC_2.44 logbf32 F +GLIBC_2.44 logbf32x F +GLIBC_2.44 logbf64 F +GLIBC_2.44 logbf64x F +GLIBC_2.44 logbl F +GLIBC_2.44 logf F +GLIBC_2.44 logf128 F +GLIBC_2.44 logf32 F +GLIBC_2.44 logf32x F +GLIBC_2.44 logf64 F +GLIBC_2.44 logf64x F +GLIBC_2.44 logl F +GLIBC_2.44 logp1 F +GLIBC_2.44 logp1f F +GLIBC_2.44 logp1f128 F +GLIBC_2.44 logp1f32 F +GLIBC_2.44 logp1f32x F +GLIBC_2.44 logp1f64 F +GLIBC_2.44 logp1f64x F +GLIBC_2.44 logp1l F +GLIBC_2.44 lrint F +GLIBC_2.44 lrintf F +GLIBC_2.44 lrintf128 F +GLIBC_2.44 lrintf32 F +GLIBC_2.44 lrintf32x F +GLIBC_2.44 lrintf64 F +GLIBC_2.44 lrintf64x F +GLIBC_2.44 lrintl F +GLIBC_2.44 lround F +GLIBC_2.44 lroundf F +GLIBC_2.44 lroundf128 F +GLIBC_2.44 lroundf32 F +GLIBC_2.44 lroundf32x F +GLIBC_2.44 lroundf64 F +GLIBC_2.44 lroundf64x F +GLIBC_2.44 lroundl F +GLIBC_2.44 modf F +GLIBC_2.44 modff F +GLIBC_2.44 modff128 F +GLIBC_2.44 modff32 F +GLIBC_2.44 modff32x F +GLIBC_2.44 modff64 F +GLIBC_2.44 modff64x F +GLIBC_2.44 modfl F +GLIBC_2.44 nan F +GLIBC_2.44 nanf F +GLIBC_2.44 nanf128 F +GLIBC_2.44 nanf32 F +GLIBC_2.44 nanf32x F +GLIBC_2.44 nanf64 F +GLIBC_2.44 nanf64x F +GLIBC_2.44 nanl F +GLIBC_2.44 nearbyint F +GLIBC_2.44 nearbyintf F +GLIBC_2.44 nearbyintf128 F +GLIBC_2.44 nearbyintf32 F +GLIBC_2.44 nearbyintf32x F +GLIBC_2.44 nearbyintf64 F +GLIBC_2.44 nearbyintf64x F +GLIBC_2.44 nearbyintl F +GLIBC_2.44 nextafter F +GLIBC_2.44 nextafterf F +GLIBC_2.44 nextafterf128 F +GLIBC_2.44 nextafterf32 F +GLIBC_2.44 nextafterf32x F +GLIBC_2.44 nextafterf64 F +GLIBC_2.44 nextafterf64x F +GLIBC_2.44 nextafterl F +GLIBC_2.44 nextdown F +GLIBC_2.44 nextdownf F +GLIBC_2.44 nextdownf128 F +GLIBC_2.44 nextdownf32 F +GLIBC_2.44 nextdownf32x F +GLIBC_2.44 nextdownf64 F +GLIBC_2.44 nextdownf64x F +GLIBC_2.44 nextdownl F +GLIBC_2.44 nexttoward F +GLIBC_2.44 nexttowardf F +GLIBC_2.44 nexttowardl F +GLIBC_2.44 nextup F +GLIBC_2.44 nextupf F +GLIBC_2.44 nextupf128 F +GLIBC_2.44 nextupf32 F +GLIBC_2.44 nextupf32x F +GLIBC_2.44 nextupf64 F +GLIBC_2.44 nextupf64x F +GLIBC_2.44 nextupl F +GLIBC_2.44 pow F +GLIBC_2.44 powf F +GLIBC_2.44 powf128 F +GLIBC_2.44 powf32 F +GLIBC_2.44 powf32x F +GLIBC_2.44 powf64 F +GLIBC_2.44 powf64x F +GLIBC_2.44 powl F +GLIBC_2.44 pown F +GLIBC_2.44 pownf F +GLIBC_2.44 pownf128 F +GLIBC_2.44 pownf32 F +GLIBC_2.44 pownf32x F +GLIBC_2.44 pownf64 F +GLIBC_2.44 pownf64x F +GLIBC_2.44 pownl F +GLIBC_2.44 powr F +GLIBC_2.44 powrf F +GLIBC_2.44 powrf128 F +GLIBC_2.44 powrf32 F +GLIBC_2.44 powrf32x F +GLIBC_2.44 powrf64 F +GLIBC_2.44 powrf64x F +GLIBC_2.44 powrl F +GLIBC_2.44 remainder F +GLIBC_2.44 remainderf F +GLIBC_2.44 remainderf128 F +GLIBC_2.44 remainderf32 F +GLIBC_2.44 remainderf32x F +GLIBC_2.44 remainderf64 F +GLIBC_2.44 remainderf64x F +GLIBC_2.44 remainderl F +GLIBC_2.44 remquo F +GLIBC_2.44 remquof F +GLIBC_2.44 remquof128 F +GLIBC_2.44 remquof32 F +GLIBC_2.44 remquof32x F +GLIBC_2.44 remquof64 F +GLIBC_2.44 remquof64x F +GLIBC_2.44 remquol F +GLIBC_2.44 rint F +GLIBC_2.44 rintf F +GLIBC_2.44 rintf128 F +GLIBC_2.44 rintf32 F +GLIBC_2.44 rintf32x F +GLIBC_2.44 rintf64 F +GLIBC_2.44 rintf64x F +GLIBC_2.44 rintl F +GLIBC_2.44 rootn F +GLIBC_2.44 rootnf F +GLIBC_2.44 rootnf128 F +GLIBC_2.44 rootnf32 F +GLIBC_2.44 rootnf32x F +GLIBC_2.44 rootnf64 F +GLIBC_2.44 rootnf64x F +GLIBC_2.44 rootnl F +GLIBC_2.44 round F +GLIBC_2.44 roundeven F +GLIBC_2.44 roundevenf F +GLIBC_2.44 roundevenf128 F +GLIBC_2.44 roundevenf32 F +GLIBC_2.44 roundevenf32x F +GLIBC_2.44 roundevenf64 F +GLIBC_2.44 roundevenf64x F +GLIBC_2.44 roundevenl F +GLIBC_2.44 roundf F +GLIBC_2.44 roundf128 F +GLIBC_2.44 roundf32 F +GLIBC_2.44 roundf32x F +GLIBC_2.44 roundf64 F +GLIBC_2.44 roundf64x F +GLIBC_2.44 roundl F +GLIBC_2.44 rsqrt F +GLIBC_2.44 rsqrtf F +GLIBC_2.44 rsqrtf128 F +GLIBC_2.44 rsqrtf32 F +GLIBC_2.44 rsqrtf32x F +GLIBC_2.44 rsqrtf64 F +GLIBC_2.44 rsqrtf64x F +GLIBC_2.44 rsqrtl F +GLIBC_2.44 scalb F +GLIBC_2.44 scalbf F +GLIBC_2.44 scalbl F +GLIBC_2.44 scalbln F +GLIBC_2.44 scalblnf F +GLIBC_2.44 scalblnf128 F +GLIBC_2.44 scalblnf32 F +GLIBC_2.44 scalblnf32x F +GLIBC_2.44 scalblnf64 F +GLIBC_2.44 scalblnf64x F +GLIBC_2.44 scalblnl F +GLIBC_2.44 scalbn F +GLIBC_2.44 scalbnf F +GLIBC_2.44 scalbnf128 F +GLIBC_2.44 scalbnf32 F +GLIBC_2.44 scalbnf32x F +GLIBC_2.44 scalbnf64 F +GLIBC_2.44 scalbnf64x F +GLIBC_2.44 scalbnl F +GLIBC_2.44 setpayload F +GLIBC_2.44 setpayloadf F +GLIBC_2.44 setpayloadf128 F +GLIBC_2.44 setpayloadf32 F +GLIBC_2.44 setpayloadf32x F +GLIBC_2.44 setpayloadf64 F +GLIBC_2.44 setpayloadf64x F +GLIBC_2.44 setpayloadl F +GLIBC_2.44 setpayloadsig F +GLIBC_2.44 setpayloadsigf F +GLIBC_2.44 setpayloadsigf128 F +GLIBC_2.44 setpayloadsigf32 F +GLIBC_2.44 setpayloadsigf32x F +GLIBC_2.44 setpayloadsigf64 F +GLIBC_2.44 setpayloadsigf64x F +GLIBC_2.44 setpayloadsigl F +GLIBC_2.44 signgam D 0x4 +GLIBC_2.44 significand F +GLIBC_2.44 significandf F +GLIBC_2.44 significandl F +GLIBC_2.44 sin F +GLIBC_2.44 sincos F +GLIBC_2.44 sincosf F +GLIBC_2.44 sincosf128 F +GLIBC_2.44 sincosf32 F +GLIBC_2.44 sincosf32x F +GLIBC_2.44 sincosf64 F +GLIBC_2.44 sincosf64x F +GLIBC_2.44 sincosl F +GLIBC_2.44 sinf F +GLIBC_2.44 sinf128 F +GLIBC_2.44 sinf32 F +GLIBC_2.44 sinf32x F +GLIBC_2.44 sinf64 F +GLIBC_2.44 sinf64x F +GLIBC_2.44 sinh F +GLIBC_2.44 sinhf F +GLIBC_2.44 sinhf128 F +GLIBC_2.44 sinhf32 F +GLIBC_2.44 sinhf32x F +GLIBC_2.44 sinhf64 F +GLIBC_2.44 sinhf64x F +GLIBC_2.44 sinhl F +GLIBC_2.44 sinl F +GLIBC_2.44 sinpi F +GLIBC_2.44 sinpif F +GLIBC_2.44 sinpif128 F +GLIBC_2.44 sinpif32 F +GLIBC_2.44 sinpif32x F +GLIBC_2.44 sinpif64 F +GLIBC_2.44 sinpif64x F +GLIBC_2.44 sinpil F +GLIBC_2.44 sqrt F +GLIBC_2.44 sqrtf F +GLIBC_2.44 sqrtf128 F +GLIBC_2.44 sqrtf32 F +GLIBC_2.44 sqrtf32x F +GLIBC_2.44 sqrtf64 F +GLIBC_2.44 sqrtf64x F +GLIBC_2.44 sqrtl F +GLIBC_2.44 tan F +GLIBC_2.44 tanf F +GLIBC_2.44 tanf128 F +GLIBC_2.44 tanf32 F +GLIBC_2.44 tanf32x F +GLIBC_2.44 tanf64 F +GLIBC_2.44 tanf64x F +GLIBC_2.44 tanh F +GLIBC_2.44 tanhf F +GLIBC_2.44 tanhf128 F +GLIBC_2.44 tanhf32 F +GLIBC_2.44 tanhf32x F +GLIBC_2.44 tanhf64 F +GLIBC_2.44 tanhf64x F +GLIBC_2.44 tanhl F +GLIBC_2.44 tanl F +GLIBC_2.44 tanpi F +GLIBC_2.44 tanpif F +GLIBC_2.44 tanpif128 F +GLIBC_2.44 tanpif32 F +GLIBC_2.44 tanpif32x F +GLIBC_2.44 tanpif64 F +GLIBC_2.44 tanpif64x F +GLIBC_2.44 tanpil F +GLIBC_2.44 tgamma F +GLIBC_2.44 tgammaf F +GLIBC_2.44 tgammaf128 F +GLIBC_2.44 tgammaf32 F +GLIBC_2.44 tgammaf32x F +GLIBC_2.44 tgammaf64 F +GLIBC_2.44 tgammaf64x F +GLIBC_2.44 tgammal F +GLIBC_2.44 totalorder F +GLIBC_2.44 totalorderf F +GLIBC_2.44 totalorderf128 F +GLIBC_2.44 totalorderf32 F +GLIBC_2.44 totalorderf32x F +GLIBC_2.44 totalorderf64 F +GLIBC_2.44 totalorderf64x F +GLIBC_2.44 totalorderl F +GLIBC_2.44 totalordermag F +GLIBC_2.44 totalordermagf F +GLIBC_2.44 totalordermagf128 F +GLIBC_2.44 totalordermagf32 F +GLIBC_2.44 totalordermagf32x F +GLIBC_2.44 totalordermagf64 F +GLIBC_2.44 totalordermagf64x F +GLIBC_2.44 totalordermagl F +GLIBC_2.44 trunc F +GLIBC_2.44 truncf F +GLIBC_2.44 truncf128 F +GLIBC_2.44 truncf32 F +GLIBC_2.44 truncf32x F +GLIBC_2.44 truncf64 F +GLIBC_2.44 truncf64x F +GLIBC_2.44 truncl F +GLIBC_2.44 ufromfp F +GLIBC_2.44 ufromfpf F +GLIBC_2.44 ufromfpf128 F +GLIBC_2.44 ufromfpf32 F +GLIBC_2.44 ufromfpf32x F +GLIBC_2.44 ufromfpf64 F +GLIBC_2.44 ufromfpf64x F +GLIBC_2.44 ufromfpl F +GLIBC_2.44 ufromfpx F +GLIBC_2.44 ufromfpxf F +GLIBC_2.44 ufromfpxf128 F +GLIBC_2.44 ufromfpxf32 F +GLIBC_2.44 ufromfpxf32x F +GLIBC_2.44 ufromfpxf64 F +GLIBC_2.44 ufromfpxf64x F +GLIBC_2.44 ufromfpxl F +GLIBC_2.44 y0 F +GLIBC_2.44 y0f F +GLIBC_2.44 y0f128 F +GLIBC_2.44 y0f32 F +GLIBC_2.44 y0f32x F +GLIBC_2.44 y0f64 F +GLIBC_2.44 y0f64x F +GLIBC_2.44 y0l F +GLIBC_2.44 y1 F +GLIBC_2.44 y1f F +GLIBC_2.44 y1f128 F +GLIBC_2.44 y1f32 F +GLIBC_2.44 y1f32x F +GLIBC_2.44 y1f64 F +GLIBC_2.44 y1f64x F +GLIBC_2.44 y1l F +GLIBC_2.44 yn F +GLIBC_2.44 ynf F +GLIBC_2.44 ynf128 F +GLIBC_2.44 ynf32 F +GLIBC_2.44 ynf32x F +GLIBC_2.44 ynf64 F +GLIBC_2.44 ynf64x F +GLIBC_2.44 ynl F diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libpthread.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libpthread.abilist new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libresolv.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libresolv.abilist new file mode 100644 index 0000000000..1f20f0f2a5 --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libresolv.abilist @@ -0,0 +1,55 @@ +GLIBC_2.44 __b64_ntop F +GLIBC_2.44 __b64_pton F +GLIBC_2.44 __dn_count_labels F +GLIBC_2.44 __fp_nquery F +GLIBC_2.44 __fp_query F +GLIBC_2.44 __fp_resstat F +GLIBC_2.44 __hostalias F +GLIBC_2.44 __loc_aton F +GLIBC_2.44 __loc_ntoa F +GLIBC_2.44 __p_cdname F +GLIBC_2.44 __p_cdnname F +GLIBC_2.44 __p_class F +GLIBC_2.44 __p_class_syms D 0x54 +GLIBC_2.44 __p_fqname F +GLIBC_2.44 __p_fqnname F +GLIBC_2.44 __p_option F +GLIBC_2.44 __p_query F +GLIBC_2.44 __p_rcode F +GLIBC_2.44 __p_time F +GLIBC_2.44 __p_type F +GLIBC_2.44 __p_type_syms D 0x228 +GLIBC_2.44 __putlong F +GLIBC_2.44 __putshort F +GLIBC_2.44 __res_close F +GLIBC_2.44 __res_hostalias F +GLIBC_2.44 __res_isourserver F +GLIBC_2.44 __res_nameinquery F +GLIBC_2.44 __res_queriesmatch F +GLIBC_2.44 __sym_ntop F +GLIBC_2.44 __sym_ntos F +GLIBC_2.44 __sym_ston F +GLIBC_2.44 _getlong F +GLIBC_2.44 _getshort F +GLIBC_2.44 inet_net_ntop F +GLIBC_2.44 inet_net_pton F +GLIBC_2.44 inet_neta F +GLIBC_2.44 ns_datetosecs F +GLIBC_2.44 ns_format_ttl F +GLIBC_2.44 ns_get16 F +GLIBC_2.44 ns_get32 F +GLIBC_2.44 ns_initparse F +GLIBC_2.44 ns_makecanon F +GLIBC_2.44 ns_msg_getflag F +GLIBC_2.44 ns_name_ntol F +GLIBC_2.44 ns_name_rollback F +GLIBC_2.44 ns_parse_ttl F +GLIBC_2.44 ns_parserr F +GLIBC_2.44 ns_put16 F +GLIBC_2.44 ns_put32 F +GLIBC_2.44 ns_samedomain F +GLIBC_2.44 ns_samename F +GLIBC_2.44 ns_skiprr F +GLIBC_2.44 ns_sprintrr F +GLIBC_2.44 ns_sprintrrf F +GLIBC_2.44 ns_subdomain F diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/librt.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/librt.abilist new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sysdeps/unix/sysv/linux/loongarch/ilp32/libthread_db.abilist b/sysdeps/unix/sysv/linux/loongarch/ilp32/libthread_db.abilist new file mode 100644 index 0000000000..725b8140fe --- /dev/null +++ b/sysdeps/unix/sysv/linux/loongarch/ilp32/libthread_db.abilist @@ -0,0 +1,40 @@ +GLIBC_2.44 td_init F +GLIBC_2.44 td_log F +GLIBC_2.44 td_symbol_list F +GLIBC_2.44 td_ta_clear_event F +GLIBC_2.44 td_ta_delete F +GLIBC_2.44 td_ta_enable_stats F +GLIBC_2.44 td_ta_event_addr F +GLIBC_2.44 td_ta_event_getmsg F +GLIBC_2.44 td_ta_get_nthreads F +GLIBC_2.44 td_ta_get_ph F +GLIBC_2.44 td_ta_get_stats F +GLIBC_2.44 td_ta_map_id2thr F +GLIBC_2.44 td_ta_map_lwp2thr F +GLIBC_2.44 td_ta_new F +GLIBC_2.44 td_ta_reset_stats F +GLIBC_2.44 td_ta_set_event F +GLIBC_2.44 td_ta_setconcurrency F +GLIBC_2.44 td_ta_thr_iter F +GLIBC_2.44 td_ta_tsd_iter F +GLIBC_2.44 td_thr_clear_event F +GLIBC_2.44 td_thr_dbresume F +GLIBC_2.44 td_thr_dbsuspend F +GLIBC_2.44 td_thr_event_enable F +GLIBC_2.44 td_thr_event_getmsg F +GLIBC_2.44 td_thr_get_info F +GLIBC_2.44 td_thr_getfpregs F +GLIBC_2.44 td_thr_getgregs F +GLIBC_2.44 td_thr_getxregs F +GLIBC_2.44 td_thr_getxregsize F +GLIBC_2.44 td_thr_set_event F +GLIBC_2.44 td_thr_setfpregs F +GLIBC_2.44 td_thr_setgregs F +GLIBC_2.44 td_thr_setprio F +GLIBC_2.44 td_thr_setsigpending F +GLIBC_2.44 td_thr_setxregs F +GLIBC_2.44 td_thr_sigsetmask F +GLIBC_2.44 td_thr_tls_get_addr F +GLIBC_2.44 td_thr_tlsbase F +GLIBC_2.44 td_thr_tsd F +GLIBC_2.44 td_thr_validate F From patchwork Thu Mar 12 01:42:03 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 131559 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id DCD864BB58F8 for ; Thu, 12 Mar 2026 01:48:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DCD864BB58F8 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 791F14B920DF for ; Thu, 12 Mar 2026 01:46:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 791F14B920DF Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 791F14B920DF Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773280002; cv=none; b=qEb5cxvmPa0l1kxMU4UkzGwVwp9t0U0sqybOADc8g28ZBxhEJEGtRfWjpi1Q3ppm+jBEEpHfn7hwfkSEt0LXarm/9UfPoso2gjuOsTTzjSDt1aXpkzFyOeobNYLUgLATXG4htmT485wHS6SJOLN7cjpN9yDXcRMlmoM4Znr/PMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773280002; c=relaxed/simple; bh=bCbiphhj8hrZpKc2WL7dePN04Z+jq9oJPxLpF6f7Nsk=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=mWCaUoIPgtXGoPoDPl+QjMPufrHjUr5M7KWjLX9IbBR4mhUIEwGckp46JNHj/LBR3KzVXAKM/6E2/uQvAxxZMVARJp8pz2CKsD22j4IK4bSxKZ0AX+TcV/HnfAU+DpKhwpUzViSFdPXrHJ7Pe6ENb8ZizYNHRuMRdzFVzo2DxKc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 791F14B920DF Received: from loongson.cn (unknown [10.2.6.7]) by gateway (Coremail) with SMTP id _____8BxEMD_GrJpKS4aAA--.17635S3; Thu, 12 Mar 2026 09:46:39 +0800 (CST) Received: from amd9754.. (unknown [10.2.6.7]) by front1 (Coremail) with SMTP id qMiowJCx98D8GrJpwIBTAA--.14089S2; Thu, 12 Mar 2026 09:46:36 +0800 (CST) From: mengqinggang To: libc-alpha@sourceware.org Cc: adhemerval.zanella@linaro.org, fweimer@redhat.com, xuchenghua@loongson.cn, caiyinyu@loongson.cn, chenglulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, hejinyang@loongson.cn, mengqinggang@loongson.cn Subject: [PATCH v6 6/6] Fix 'cbaud_to_speed' defined but not used on LA32 Date: Thu, 12 Mar 2026 09:42:03 +0800 Message-Id: <20260312014203.1916933-7-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260312014203.1916933-1-mengqinggang@loongson.cn> References: <20260312014203.1916933-1-mengqinggang@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: qMiowJCx98D8GrJpwIBTAA--.14089S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org 'cbaud_to_speed' used if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_42). Move cbaud_to_speed to #if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_42) --- sysdeps/unix/sysv/linux/tst-termios-linux.c | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sysdeps/unix/sysv/linux/tst-termios-linux.c b/sysdeps/unix/sysv/linux/tst-termios-linux.c index 6495b435e8..d9c3284e1c 100644 --- a/sysdeps/unix/sysv/linux/tst-termios-linux.c +++ b/sysdeps/unix/sysv/linux/tst-termios-linux.c @@ -163,18 +163,6 @@ static speed_t speed_to_cbaud (speed_t speed) return ct->cbaud; } -/* Returns ANY if cbaud is __BOTHER, or BOGUS if invalid */ -static speed_t cbaud_to_speed (speed_t cbaud) -{ - const struct cbaud_table *ct; - for (ct = cbaud_table; ct->cbaud != BOGUS; ct++) - { - if (ct->cbaud == cbaud) - break; - } - return ct->speed; -} - static const char *cbaud_name (speed_t cbaud) { const struct cbaud_table *ct; @@ -514,6 +502,18 @@ old_tcspeed_test (int fd, speed_t speed) check_speeds_tc (fd, speed, speed); } +/* Returns ANY if cbaud is __BOTHER, or BOGUS if invalid */ +static speed_t cbaud_to_speed (speed_t cbaud) +{ + const struct cbaud_table *ct; + for (ct = cbaud_table; ct->cbaud != BOGUS; ct++) + { + if (ct->cbaud == cbaud) + break; + } + return ct->speed; +} + /* Verify that invalid CBAUD values return error for the old interfaces */ static void old_invalid_speeds_test (int fd)