no1wudi commented on PR #7175:
URL: https://github.com/apache/nuttx/pull/7175#issuecomment-3588433269

   @xiaoxiang781216 @casaroli 
   
   ## Core Issue
   WAMRC generates different memory function calls depending on the target ABI 
used for ARM compilation.
   ## Function Call Analysis
   ### EABI ABIs (eabihf, eabi)
   Generate ARM EABI-specific functions:
   ```
   __aeabi_memmove    - Memory block copy for overlapping regions
   __aeabi_memclr     - Memory clear/set to zero
   ```
   ### GNU ABIs (gnu, gnueabihf)  
   Generate standard C library functions:
   ```
   memmove            - Standard memory copy
   memset             - Standard memory set
   ```
   ## Test Results
   | ABI | __aeabi_* Functions | Standard Functions | Status |
   |-----|-------------------|-------------------|---------|
   | eabihf | YES | NO | Requires ARM EABI library |
   | eabi | YES | NO | Requires ARM EABI library |
   | gnu | NO | YES | Uses standard libc |
   | gnueabihf | NO | YES | Uses standard libc |
   ## Root Cause
   The ABI specification determines which memory function implementations LLVM 
targets:
   - **EABI ABIs**: Generate calls to ARM EABI functions (`__aeabi_*`)
   - **GNU ABIs**: Generate calls to standard POSIX functions (`memmove`, 
`memset`)
   This affects compatibility with different C library implementations.
   
   So, I guess restore them can improve compatibiliy with 3rd party generated 
objects?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to