tree ca6ab9a0763a8571760861e729e6a63282679d59
parent 0721caf05e950008d049034483a068e2a7cd53e7
author LIU Hao <lh_mouse@126.com> 1713276787 +0800
committer LIU Hao <lh_mouse@126.com> 1713321159 +0800

crt: Fix some symbols with duplicate stdcall suffixes

Some of these functions, such as `ConvertAtJobsToTasks`, are exported with both
undecorated and decorated names, respectively, `ConvertAtJobsToTasks` and
`_ConvertAtJobsToTasks@0`. The decorated names are almost useless for C code
anyway and are removed.

Some other stdcall functions, such as `__fls_getvalue`, are only exported with
decorated names. A new macro `DECORATED_EXPORT()` is introduced for them.

This fixes errors like

   #include <stdio.h>
   #include <windows.h>

   /* This was `__stdcall` in X3DAUDIO1_2.DLL, and changed to `__cdecl` later.  */
   __declspec(dllimport) void __stdcall X3DAudioCalculate(void*, void*, void*, UINT, void*);

   int main(void)
     {
       printf("X3DAudioCalculate = %p\n", (void*)(INT_PTR) X3DAudioCalculate);
     }

which used to result in

   test.c:(.text+0xf): undefined reference to `_imp__X3DAudioCalculate@20'

Signed-off-by: LIU Hao <lh_mouse@126.com>
