Re: [Tinycc-devel] where are the functions?

2023-09-11 Thread Samir Ribić via Tinycc-devel
To link with Windows system DLLs, TCC uses import definition
files (.def) instead of libraries.
I have downloaded the version you mention and in the directory tcc\lib
there are files

17. 12. 2017.  09:27 5.052 gdi32.def
17. 12. 2017.  09:2712.882 kernel32.def
17. 12. 2017.  09:2726.866 libtcc1-32.a
17. 12. 2017.  09:2741.706 libtcc1-64.a
17. 12. 2017.  09:2715.880 msvcrt.def
17. 12. 2017.  09:2710.439 user32.def

All your functions missing are either from user32 or gdi32, so most
probably you used the wrong -L parameter.
Try;
tcc\tcc test.c -luser32 -lgdi32
or even plain
tcc\tcc test.c


On Sun, Sep 10, 2023 at 4:05 PM Dieter Dewald  wrote:

>10.09.2023
> i used tcc-0.9.27-win64-bin.zip,
> i written #include  else no include,
> but i got this error-message:
>
> tcc: error: undefined symbol 'DefWindowProcA'
> tcc: error: undefined symbol 'LoadIconA'
> tcc: error: undefined symbol 'RegisterClassA'
> tcc: error: undefined symbol 'CreateWindowExA'
> tcc: error: undefined symbol 'ShowWindow'
> tcc: error: undefined symbol 'UpdateWindow'
> tcc: error: undefined symbol 'DestroyWindow'
> tcc: error: undefined symbol 'RegisterClassExA'
> tcc: error: undefined symbol 'MoveWindow'
> tcc: error: undefined symbol 'GetDC'
> tcc: error: undefined symbol 'BeginPaint'
> tcc: error: undefined symbol 'EndPaint'
> tcc: error: undefined symbol 'ReleaseDC'
> tcc: error: undefined symbol 'SetTextColor'
> tcc: error: undefined symbol 'SetBkColor'
> tcc: error: undefined symbol 'SetBKMode'
> tcc: error: undefined symbol 'CreateFontA'
> tcc: error: undefined symbol 'SelectObject'
> tcc: error: undefined symbol 'DeleteObject'
> tcc: error: undefined symbol 'SetPixel'
> tcc: error: undefined symbol 'CreateSolidBrush'
> tcc: error: undefined symbol 'FillRect'
> tcc: error: undefined symbol 'TextOutA'
> tcc: error: undefined symbol 'PeekMessageA'
> tcc: error: undefined symbol 'GetAsyncKeyState'
> tcc: error: undefined symbol 'GetSystemMetrics'
> tcc: error: undefined symbol 'main'
>
> i have no main, and i written the functions without A
>
> ___
> Tinycc-devel mailing list
> Tinycc-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>
___
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel


[Tinycc-devel] [PATCH] Eliminate call to memset() on x86-64 when zeroing an array

2023-09-11 Thread Yao Zi via Tinycc-devel
See thread "win32: -Wl,-nostdlib: undefined symbol 'memset'"

This patch has been tested on x86-64 Alpine (musl) and all tests are passed.
I do not have a Windows platform, so many thanks if someone could help me test
it.

---
 tccgen.c |  5 +
 x86_64-gen.c | 38 ++
 2 files changed, 43 insertions(+)

diff --git a/tccgen.c b/tccgen.c
index fd0680f..da07675 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -7373,6 +7373,10 @@ static void init_putz(init_params *p, unsigned long c, 
int size)
 if (p->sec) {
 /* nothing to do because globals are already set to zero */
 } else {
+#ifdef TCC_TARGET_NATIVE_PUT_ZERO
+vseti(VT_LOCAL, c);
+gen_put_zero(size);
+#else
 vpush_helper_func(TOK_memset);
 vseti(VT_LOCAL, c);
 #ifdef TCC_TARGET_ARM
@@ -7383,6 +7387,7 @@ static void init_putz(init_params *p, unsigned long c, 
int size)
 vpushs(size);
 #endif
 gfunc_call(3);
+#endif
 }
 }
 
diff --git a/x86_64-gen.c b/x86_64-gen.c
index e04df10..fae6f54 100644
--- a/x86_64-gen.c
+++ b/x86_64-gen.c
@@ -109,7 +109,9 @@ enum {
 #define PROMOTE_RET
 
 #define TCC_TARGET_NATIVE_STRUCT_COPY
+#define TCC_TARGET_NATIVE_PUT_ZERO
 ST_FUNC void gen_struct_copy(int size);
+ST_FUNC void gen_put_zero(int size);
 
 /**/
 #else /* ! TARGET_DEFS_ONLY */
@@ -2325,6 +2327,42 @@ ST_FUNC void gen_struct_copy(int size)
 vpop();
 }
 
+ST_FUNC void gen_put_zero(int size)
+{
+int n = size / PTR_SIZE;
+
+#ifdef TCC_TARGET_PE
+o(0x57); /* push rdi */
+#endif
+
+vpushi(0);
+gv2(RC_RDI, RC_RAX);
+
+if (n <= 4) {
+for (; n; n--)
+o(0xab48);
+} else {
+vpushi(n);
+gv(RC_RCX);
+o(0xab48f3);
+   vpop();
+}
+
+if (size & 0x04)
+o(0xab);
+if (size & 0x02)
+o(0xab66);
+if (size & 0x01)
+o(0xaa);
+
+#ifdef TCC_TARGET_PE
+   o(0x5f); /* pop rdi */
+#endif
+
+   vpop();
+   vpop();
+}
+
 /* end of x86-64 code generator */
 /*/
 #endif /* ! TARGET_DEFS_ONLY */
-- 
2.42.0



___
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel


Re: [Tinycc-devel] Re : Re: win32: -Wl,-nostdlib: undefined symbol 'memset'

2023-09-11 Thread avih via Tinycc-devel
 The issue is bigger than just memset. I found at least 5 more functions
which are required in some cases, not all of them part of stdlib, and I'm
guessing sure there are more, depending on the platform. For instance:

// test3.c ---

typedef struct { int a, b; } S;

void _start(void) {
 S x = {0}; // requires memset with i386, x86-64
 int z[x.a]; // requires alloca with i386, x86-64 (on win32, not linux)
 S y = x; // requires memmove with i386

 long long llng;
 llng /= 2; // requires __divdi3 with i386
 llng %= 2; // requires __moddi3 with i386
 *z *= 1.0; // requires __fixdfdi with i386
}

// ---

Then compile using:
tcc -Wl,-nostdlib test3.c

Result on windows, as i386:
tcc: error: undefined symbol 'memset'
tcc: error: undefined symbol 'alloca'
tcc: error: undefined symbol 'memmove'
tcc: error: undefined symbol '__divdi3'
tcc: error: undefined symbol '__moddi3'
tcc: error: undefined symbol '__fixdfdi'

 
So even if memset and memmove can be provided by the user, others
are not standard and undocumented (__divdi3 does not appear in C99),
while some might not even be possible - how can the user provide an
alloca implementation which allocates on the stack which tcc manages?

Looking at the gcc docs, it includes this about -nostdlib:

> The compiler may generate calls to "memcmp", "memset", "memcpy"
> and "memmove". These entries are usually resolved by entries in
> libc. These entry points should be supplied through some other
> mechanism when this option is specified.

So even if not very friendly (because this is the very thing
which the compiler is supposed to compiled into machine code...),
at least it's well defined what the user should provide in such case.

But in the case of tcc, it's not documented, and seems to go
quite a bit further than what gcc requires, to the point which
makes this option completely impractical for tcc end users.

- avih

 On Sunday, September 10, 2023 at 01:51:14 PM GMT+3, Ziyao via Tinycc-devel 
 wrote:  
 
 On 2023-09-10 15:13, Страхиња Радић wrote:

> What is weird is that tcc requires a libc function, memset, when none 
> is
> explicitly requested, when for example this code:

It is not that weird I think. Early versions of GCC generates a call to 
memset()
as well when zeroing a block of memory [1]

btw, the call could be easily eliminated by add a function like 
gen_struct_copy()
in x86_64-gen.c. And this call may lead to problems. For example, the 
dynamic
linker of musl has code that zeros a structure, but at that time 
memset() has not
been relocated, result in a segfault.

--
Ziyao

[1]: check for clear_storage() in gcc/expr.c of commit 3b6f75e2 of gcc

___
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
  ___
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel


Re: [Tinycc-devel] Re : Re: win32: -Wl,-nostdlib: undefined symbol 'memset'

2023-09-11 Thread grischka

On 11.09.2023 14:41, avih via Tinycc-devel wrote:

But in the case of tcc, it's not documented, and seems to go
quite a bit further than what gcc requires


libgcc.a from mingw-gcc-6.3.0 is 6218 kB, all full with according
to your standards "undocumented" stuff that however gcc surely
will require under certain circumstances and will miss when
-nostdlib given.  List follows:

_chkstk.o___chkstk
_chkstk.o__alloca
_chkstk_ms.o___chkstk_ms
_muldi3.o___muldi3
_negdi2.o___negdi2
_lshrdi3.o___lshrdi3
_ashldi3.o___ashldi3
_ashrdi3.o___ashrdi3
_cmpdi2.o___cmpdi2
_ucmpdi2.o___ucmpdi2
_clear_cache.o___clear_cache
_trampoline.o_getpagesize
_trampoline.o_mprotect
__main.o___do_global_dtors
__main.o___do_global_ctors
__main.o___main
_absvsi2.o___absvsi2
_absvdi2.o___absvdi2
_addvsi3.o___addvsi3
_addvdi3.o___addvdi3
_subvsi3.o___subvsi3
_subvdi3.o___subvdi3
_mulvsi3.o___mulvsi3
_mulvdi3.o___mulvdi3
_negvsi2.o___negvsi2
_negvdi2.o___negvdi2
_ctors.o___DTOR_LIST__
_ctors.o___CTOR_LIST__
_ffssi2.o___ffssi2
_ffsdi2.o___ffsdi2
_clz.o___clz_tab
_clzsi2.o___clzsi2
_clzdi2.o___clzdi2
_ctzsi2.o___ctzsi2
_ctzdi2.o___ctzdi2
_popcount_tab.o___popcount_tab
_popcountsi2.o___popcountsi2
_popcountdi2.o___popcountdi2
_paritysi2.o___paritysi2
_paritydi2.o___paritydi2
_powisf2.o___powisf2
_powidf2.o___powidf2
_powixf2.o___powixf2
_powitf2.o___powitf2
_mulsc3.o___mulsc3
_muldc3.o___muldc3
_mulxc3.o___mulxc3
_multc3.o___multc3
_divsc3.o___divsc3
_divdc3.o___divdc3
_divxc3.o___divxc3
_divtc3.o___divtc3
_bswapsi2.o___bswapsi2
_bswapdi2.o___bswapdi2
_clrsbsi2.o___clrsbsi2
_clrsbdi2.o___clrsbdi2
_fixunssfsi.o___fixunssfsi
_fixunsdfsi.o___fixunsdfsi
_fixunsxfsi.o___fixunsxfsi
_fixsfdi.o___fixsfdi
_fixdfdi.o___fixdfdi
_fixxfdi.o___fixxfdi
_fixunssfdi.o___fixunssfdi
_fixunsdfdi.o___fixunsdfdi
_fixunsxfdi.o___fixunsxfdi
_floatdisf.o___floatdisf
_floatdidf.o___floatdidf
_floatdixf.o___floatdixf
_floatundisf.o___floatundisf
_floatundidf.o___floatundidf
_floatundixf.o___floatundixf
_eprintf.o___eprintf
__gcc_bcmp.o___gcc_bcmp
_divdi3.o___divdi3
_moddi3.o___moddi3
_udivdi3.o___udivdi3
_umoddi3.o___umoddi3
_udiv_w_sdiv.o___udiv_w_sdiv
_udivmoddi4.o___udivmoddi4
bid_decimal_globals.o___dfp_set_round
bid_decimal_globals.o___dfp_get_round
bid_decimal_globals.o___dfp_clear_except
bid_decimal_globals.o___dfp_test_except
bid_decimal_globals.o___dfp_raise_except
bid_decimal_globals.o___bid_IDEC_glbround
bid_decimal_globals.o___bid_IDEC_glbflags
bid_decimal_data.o___bid_power10_index_binexp_128
bid_decimal_data.o___bid_reciprocals10_64
bid_decimal_data.o___bid_short_recip_scale
bid_decimal_data.o___bid_power10_index_binexp
bid_decimal_data.o___bid_estimate_bin_expon
bid_decimal_data.o___bid_power10_table_128
bid_decimal_data.o___bid_estimate_decimal_digits
bid_decimal_data.o___bid_recip_scale
bid_decimal_data.o___bid_reciprocals10_128
bid_decimal_data.o___bid_round_const_table_128
bid_decimal_data.o___bid_round_const_table
bid_binarydecimal.o___bid32_to_binary32
bid_binarydecimal.o___bid64_to_binary32
bid_binarydecimal.o___bid128_to_binary32
bid_binarydecimal.o___bid32_to_binary64
bid_binarydecimal.o___bid64_to_binary64
bid_binarydecimal.o___bid128_to_binary64
bid_binarydecimal.o___bid32_to_binary80
bid_binarydecimal.o___bid64_to_binary80
bid_binarydecimal.o___bid128_to_binary80
bid_binarydecimal.o___bid32_to_binary128
bid_binarydecimal.o___bid64_to_binary128
bid_binarydecimal.o___bid128_to_binary128
bid_binarydecimal.o___binary32_to_bid32
bid_binarydecimal.o___binary64_to_bid32
bid_binarydecimal.o___binary80_to_bid32
bid_binarydecimal.o___binary128_to_bid32
bid_binarydecimal.o___binary32_to_bid64
bid_binarydecimal.o___binary64_to_bid64
bid_binarydecimal.o___binary80_to_bid64
bid_binarydecimal.o___binary128_to_bid64
bid_binarydecimal.o___binary32_to_bid128
bid_binarydecimal.o___binary64_to_bid128
bid_binarydecimal.o___binary80_to_bid128
bid_binarydecimal.o___binary128_to_bid128
bid_convert_data.o___bid_factors
bid_convert_data.o___bid_packed_1_zeros
bid_convert_data.o___bid_convert_table
_isinfd32.o_isinfd32
_isinfd64.o_isinfd64
_isinfd128.o_isinfd128
bid64_noncomp.o___bid64_isSigned
bid64_noncomp.o___bid64_isNormal
bid64_noncomp.o___bid64_isSubnormal
bid64_noncomp.o___bid64_isFinite
bid64_noncomp.o___bid64_isZero
bid64_noncomp.o___bid64_isInf
bid64_noncomp.o___bid64_isSignaling
bid64_noncomp.o___bid64_isCanonical
bid64_noncomp.o___bid64_isNaN
bid64_noncomp.o___bid64_copy
bid64_noncomp.o___bid64_negate
bid64_noncom

[Tinycc-devel] Re : Re: Re : Re: win32: -Wl,-nostdlib: undefined symbol 'memset'

2023-09-11 Thread david . koch
Thank, that's valuable information in one place.

Regards.

- Mail d'origine -
De: grischka 
À: tinycc-devel@nongnu.org
Envoyé: Mon, 11 Sep 2023 21:31:24 +0200 (CEST)
Objet: Re: [Tinycc-devel] Re : Re: win32: -Wl,-nostdlib: undefined symbol 
'memset'

On 11.09.2023 14:41, avih via Tinycc-devel wrote:
> But in the case of tcc, it's not documented, and seems to go
> quite a bit further than what gcc requires

libgcc.a from mingw-gcc-6.3.0 is 6218 kB, all full with according
to your standards "undocumented" stuff that however gcc surely
will require under certain circumstances and will miss when
-nostdlib given.  List follows:

_chkstk.o___chkstk
_chkstk.o__alloca
_chkstk_ms.o___chkstk_ms
_muldi3.o___muldi3
_negdi2.o___negdi2
_lshrdi3.o___lshrdi3
_ashldi3.o___ashldi3
_ashrdi3.o___ashrdi3
_cmpdi2.o___cmpdi2
_ucmpdi2.o___ucmpdi2
_clear_cache.o___clear_cache
_trampoline.o_getpagesize
_trampoline.o_mprotect
__main.o___do_global_dtors
__main.o___do_global_ctors
__main.o___main
_absvsi2.o___absvsi2
_absvdi2.o___absvdi2
_addvsi3.o___addvsi3
_addvdi3.o___addvdi3
_subvsi3.o___subvsi3
_subvdi3.o___subvdi3
_mulvsi3.o___mulvsi3
_mulvdi3.o___mulvdi3
_negvsi2.o___negvsi2
_negvdi2.o___negvdi2
_ctors.o___DTOR_LIST__
_ctors.o___CTOR_LIST__
_ffssi2.o___ffssi2
_ffsdi2.o___ffsdi2
_clz.o___clz_tab
_clzsi2.o___clzsi2
_clzdi2.o___clzdi2
_ctzsi2.o___ctzsi2
_ctzdi2.o___ctzdi2
_popcount_tab.o___popcount_tab
_popcountsi2.o___popcountsi2
_popcountdi2.o___popcountdi2
_paritysi2.o___paritysi2
_paritydi2.o___paritydi2
_powisf2.o___powisf2
_powidf2.o___powidf2
_powixf2.o___powixf2
_powitf2.o___powitf2
_mulsc3.o___mulsc3
_muldc3.o___muldc3
_mulxc3.o___mulxc3
_multc3.o___multc3
_divsc3.o___divsc3
_divdc3.o___divdc3
_divxc3.o___divxc3
_divtc3.o___divtc3
_bswapsi2.o___bswapsi2
_bswapdi2.o___bswapdi2
_clrsbsi2.o___clrsbsi2
_clrsbdi2.o___clrsbdi2
_fixunssfsi.o___fixunssfsi
_fixunsdfsi.o___fixunsdfsi
_fixunsxfsi.o___fixunsxfsi
_fixsfdi.o___fixsfdi
_fixdfdi.o___fixdfdi
_fixxfdi.o___fixxfdi
_fixunssfdi.o___fixunssfdi
_fixunsdfdi.o___fixunsdfdi
_fixunsxfdi.o___fixunsxfdi
_floatdisf.o___floatdisf
_floatdidf.o___floatdidf
_floatdixf.o___floatdixf
_floatundisf.o___floatundisf
_floatundidf.o___floatundidf
_floatundixf.o___floatundixf
_eprintf.o___eprintf
__gcc_bcmp.o___gcc_bcmp
_divdi3.o___divdi3
_moddi3.o___moddi3
_udivdi3.o___udivdi3
_umoddi3.o___umoddi3
_udiv_w_sdiv.o___udiv_w_sdiv
_udivmoddi4.o___udivmoddi4
bid_decimal_globals.o___dfp_set_round
bid_decimal_globals.o___dfp_get_round
bid_decimal_globals.o___dfp_clear_except
bid_decimal_globals.o___dfp_test_except
bid_decimal_globals.o___dfp_raise_except
bid_decimal_globals.o___bid_IDEC_glbround
bid_decimal_globals.o___bid_IDEC_glbflags
bid_decimal_data.o___bid_power10_index_binexp_128
bid_decimal_data.o___bid_reciprocals10_64
bid_decimal_data.o___bid_short_recip_scale
bid_decimal_data.o___bid_power10_index_binexp
bid_decimal_data.o___bid_estimate_bin_expon
bid_decimal_data.o___bid_power10_table_128
bid_decimal_data.o___bid_estimate_decimal_digits
bid_decimal_data.o___bid_recip_scale
bid_decimal_data.o___bid_reciprocals10_128
bid_decimal_data.o___bid_round_const_table_128
bid_decimal_data.o___bid_round_const_table
bid_binarydecimal.o___bid32_to_binary32
bid_binarydecimal.o___bid64_to_binary32
bid_binarydecimal.o___bid128_to_binary32
bid_binarydecimal.o___bid32_to_binary64
bid_binarydecimal.o___bid64_to_binary64
bid_binarydecimal.o___bid128_to_binary64
bid_binarydecimal.o___bid32_to_binary80
bid_binarydecimal.o___bid64_to_binary80
bid_binarydecimal.o___bid128_to_binary80
bid_binarydecimal.o___bid32_to_binary128
bid_binarydecimal.o___bid64_to_binary128
bid_binarydecimal.o___bid128_to_binary128
bid_binarydecimal.o___binary32_to_bid32
bid_binarydecimal.o___binary64_to_bid32
bid_binarydecimal.o___binary80_to_bid32
bid_binarydecimal.o___binary128_to_bid32
bid_binarydecimal.o___binary32_to_bid64
bid_binarydecimal.o___binary64_to_bid64
bid_binarydecimal.o___binary80_to_bid64
bid_binarydecimal.o___binary128_to_bid64
bid_binarydecimal.o___binary32_to_bid128
bid_binarydecimal.o___binary64_to_bid128
bid_binarydecimal.o___binary80_to_bid128
bid_binarydecimal.o___binary128_to_bid128
bid_convert_data.o___bid_factors
bid_convert_data.o___bid_packed_1_zeros
bid_convert_data.o___bid_convert_table
_isinfd32.o_isinfd32
_isinfd64.o_isinfd64
_isinfd128.o_isinfd128
bid64_noncomp.o___bid64_isSigned
bid64_noncomp.o___bid64_isNormal
bid64_noncomp.o___bid64_isSubnormal
bid64_noncomp.o___bid64_isFinite
bi

Re: [Tinycc-devel] Re : Re: win32: -Wl,-nostdlib: undefined symbol 'memset'

2023-09-11 Thread avih via Tinycc-devel
 Thanks. I was going by the official gcc docs. I did not test
what it requires beyond those mem* implementations.

Back to tcc, the current help for nostdlib is:

> -nostdlib do not link with standard crt and libraries

Would that be fair to change it to something like:

> -nostdlib do not link with standard crt and libraries
> may require memset, memmove, and linking with -ltcc1

That's apriori. Linking with libtcc1.a seems to address all the
missing symbols in my example except memset and memmove.

Are there others? like memcmp or memcpy which the gcc docs mention?
or maybe even more beyond those?

Should the mem* functions and libtcc1 cover these linking issues, assuming
the user code doesn't use the crt and stdlib?

- avih



 On Monday, September 11, 2023 at 10:32:26 PM GMT+3, grischka 
 wrote:  
 
 On 11.09.2023 14:41, avih via Tinycc-devel wrote:
> But in the case of tcc, it's not documented, and seems to go
> quite a bit further than what gcc requires

libgcc.a from mingw-gcc-6.3.0 is 6218 kB, all full with according
to your standards "undocumented" stuff that however gcc surely
will require under certain circumstances and will miss when
-nostdlib given.  List follows:

_chkstk.o    ___chkstk
_chkstk.o    __alloca
_chkstk_ms.o    ___chkstk_ms
_muldi3.o    ___muldi3
_negdi2.o    ___negdi2
_lshrdi3.o    ___lshrdi3
_ashldi3.o    ___ashldi3
_ashrdi3.o    ___ashrdi3
_cmpdi2.o    ___cmpdi2
_ucmpdi2.o    ___ucmpdi2
_clear_cache.o    ___clear_cache
_trampoline.o    _getpagesize
_trampoline.o    _mprotect
__main.o    ___do_global_dtors
__main.o    ___do_global_ctors
__main.o    ___main
_absvsi2.o    ___absvsi2
_absvdi2.o    ___absvdi2
_addvsi3.o    ___addvsi3
_addvdi3.o    ___addvdi3
_subvsi3.o    ___subvsi3
_subvdi3.o    ___subvdi3
_mulvsi3.o    ___mulvsi3
_mulvdi3.o    ___mulvdi3
_negvsi2.o    ___negvsi2
_negvdi2.o    ___negvdi2
_ctors.o    ___DTOR_LIST__
_ctors.o    ___CTOR_LIST__
_ffssi2.o    ___ffssi2
_ffsdi2.o    ___ffsdi2
_clz.o    ___clz_tab
_clzsi2.o    ___clzsi2
_clzdi2.o    ___clzdi2
_ctzsi2.o    ___ctzsi2
_ctzdi2.o    ___ctzdi2
_popcount_tab.o    ___popcount_tab
_popcountsi2.o    ___popcountsi2
_popcountdi2.o    ___popcountdi2
_paritysi2.o    ___paritysi2
_paritydi2.o    ___paritydi2
_powisf2.o    ___powisf2
_powidf2.o    ___powidf2
_powixf2.o    ___powixf2
_powitf2.o    ___powitf2
_mulsc3.o    ___mulsc3
_muldc3.o    ___muldc3
_mulxc3.o    ___mulxc3
_multc3.o    ___multc3
_divsc3.o    ___divsc3
_divdc3.o    ___divdc3
_divxc3.o    ___divxc3
_divtc3.o    ___divtc3
_bswapsi2.o    ___bswapsi2
_bswapdi2.o    ___bswapdi2
_clrsbsi2.o    ___clrsbsi2
_clrsbdi2.o    ___clrsbdi2
_fixunssfsi.o    ___fixunssfsi
_fixunsdfsi.o    ___fixunsdfsi
_fixunsxfsi.o    ___fixunsxfsi
_fixsfdi.o    ___fixsfdi
_fixdfdi.o    ___fixdfdi
_fixxfdi.o    ___fixxfdi
_fixunssfdi.o    ___fixunssfdi
_fixunsdfdi.o    ___fixunsdfdi
_fixunsxfdi.o    ___fixunsxfdi
_floatdisf.o    ___floatdisf
_floatdidf.o    ___floatdidf
_floatdixf.o    ___floatdixf
_floatundisf.o    ___floatundisf
_floatundidf.o    ___floatundidf
_floatundixf.o    ___floatundixf
_eprintf.o    ___eprintf
__gcc_bcmp.o    ___gcc_bcmp
_divdi3.o    ___divdi3
_moddi3.o    ___moddi3
_udivdi3.o    ___udivdi3
_umoddi3.o    ___umoddi3
_udiv_w_sdiv.o    ___udiv_w_sdiv
_udivmoddi4.o    ___udivmoddi4
bid_decimal_globals.o    ___dfp_set_round
bid_decimal_globals.o    ___dfp_get_round
bid_decimal_globals.o    ___dfp_clear_except
bid_decimal_globals.o    ___dfp_test_except
bid_decimal_globals.o    ___dfp_raise_except
bid_decimal_globals.o    ___bid_IDEC_glbround
bid_decimal_globals.o    ___bid_IDEC_glbflags
bid_decimal_data.o    ___bid_power10_index_binexp_128
bid_decimal_data.o    ___bid_reciprocals10_64
bid_decimal_data.o    ___bid_short_recip_scale
bid_decimal_data.o    ___bid_power10_index_binexp
bid_decimal_data.o    ___bid_estimate_bin_expon
bid_decimal_data.o    ___bid_power10_table_128
bid_decimal_data.o    ___bid_estimate_decimal_digits
bid_decimal_data.o    ___bid_recip_scale
bid_decimal_data.o    ___bid_reciprocals10_128
bid_decimal_data.o    ___bid_round_const_table_128
bid_decimal_data.o    ___bid_round_const_table
bid_binarydecimal.o    ___bid32_to_binary32
bid_binarydecimal.o    ___bid64_to_binary32
bid_binarydecimal.o    ___bid128_to_binary32
bid_binarydecimal.o    ___bid32_to_binary64
bid_binarydecimal.o    ___bid64_to_binary64
bid_binarydecimal.o    ___bid128_to_binary64
bid_binarydecimal.o    ___bid32_to_binary80
bid_binarydecimal.o    ___bid64_to_binary80
bid_binarydecimal.o    ___bid128_to_binary80
bid_binarydecimal.o    ___bid32_to_binary128
bid_binarydecimal.o    ___bid64_to_binary128
bid_binarydecimal.o    ___bid128_to_binary128
bid_binarydecimal.o    ___binary32_to_bid32
bid_binarydecimal.o    ___binary64_to_bid32
bid_binarydecimal.o    ___binary80_to_bid32
bid_binarydecimal.o    ___binary128_to_bid32
bid_binarydecimal.o    ___binary32_to_bid64
bid_binarydecimal.o    ___binary64_to_bid64
bid_binarydecimal.o    ___binary80_to_bid64
bid_binarydecimal.o    _