Commit Graph

742 Commits

Author SHA1 Message Date
xushiwei
b25ae1b4e7 Merge pull request #1384 from luoliwoshang/feature/export-different-names-1378
cl: support //export with different symbol names on embedded targets
2025-11-17 08:10:09 +08:00
Li Jie
7e4e53eb1c build: refactor emitStdioNobuf for performance and readability 2025-11-16 20:17:30 +08:00
Li Jie
1473ee98f7 build: add package and function docs 2025-11-16 20:16:16 +08:00
xgopilot
8c7e8b6290 build: apply review feedback on main module generation 2025-11-16 20:16:16 +08:00
xgopilot
2a4b2ef023 build: remove error return from genMainModule
The genMainModule function never returns an error, so simplified
its signature to return only Package.

Updated:
- genMainModule signature: (Package, error) -> Package
- Call site in build.go to not handle error
- Both test cases to remove error checking

Generated with [codeagent](https://github.com/qbox/codeagent)
Co-authored-by: cpunion <8459+cpunion@users.noreply.github.com>
2025-11-16 20:16:16 +08:00
xgopilot
7abb468592 fix: separate stdout and stderr null checks in emitStdioNobuf
The original code incorrectly used the stdout null check condition
for both stdout and stderr pointer selection. This caused incorrect
behavior when stderr is null but stdout is not, or vice-versa.

This fix separates the null checks for stdout and stderr into
independent conditions, ensuring each stream is properly selected
based on its own null status.

Generated with [codeagent](https://github.com/qbox/codeagent)
Co-authored-by: cpunion <8459+cpunion@users.noreply.github.com>
2025-11-16 20:16:16 +08:00
Li Jie
bf9c6abb23 build: refactor main module generation 2025-11-16 20:16:16 +08:00
xgopilot
d17ff2592a build: improve error handling and code quality
- Fix missing error handling in exportObject function
- Add explicit warning for non-string variable rewrites
- Improve documentation for maxRewriteValueLength constant

Generated with [codeagent](https://github.com/qbox/codeagent)
Co-authored-by: cpunion <8459+cpunion@users.noreply.github.com>
2025-11-14 11:37:09 +00:00
Li Jie
3a1d8693e9 rewrite: address review feedback 2025-11-14 17:57:05 +08:00
Li Jie
8ba8ec71b5 build: write exports into temp files 2025-11-14 16:58:33 +08:00
Li Jie
1e4616a758 build: don't replace ExportFile 2025-11-14 16:58:33 +08:00
Li Jie
22a43622a0 cl: fix global var rewrite in alt pkg 2025-11-14 16:58:30 +08:00
Li Jie
e2bb68489d build: override vars in alt pkg 2025-11-14 14:37:39 +08:00
Li Jie
9b76be9e9e support ldflags rewrites for initialized globals 2025-11-14 11:59:13 +08:00
Li Jie
16709411a0 defer: enable loop lowering 2025-11-13 15:48:46 +08:00
luoliwoshang
dac3365c73 cl,build: support //export with different names on embedded targets
Add support for using different C symbol names in //export directives
when compiling for embedded targets (enabled via -target flag).

This is for TinyGo compatibility on embedded platforms where hardware
interrupt handlers often require specific naming conventions.

Implementation:
- Add EnableExportRename() to control export rename behavior
- Add isExport parameter to initLink callback for context awareness
- Update initLinknameByDoc() to handle export rename logic:
  * When isExport && enableExportRename: allow different names
  * Otherwise: require name match
- Clean error handling in initLink():
  * export + enableExportRename: silent return (already processed)
  * export + !enableExportRename: panic with clear error message
  * other cases: warning for missing linkname

Example:
  //export LPSPI2_IRQHandler
  func interruptLPSPI2() { ... }

The Go function is named interruptLPSPI2 but exported as
LPSPI2_IRQHandler for the hardware vector table.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 18:52:36 +08:00
xgopilot
742bfd95a2 chore: remove deprecated //export LLGoVersion comment
Removes the deprecated //export LLGoVersion comment from internal/env/version.go
as it is no longer needed.

Fixes #1385

Generated with [codeagent](https://github.com/qbox/codeagent)
Co-authored-by: luoliwoshang <51194195+luoliwoshang@users.noreply.github.com>
2025-11-04 11:45:10 +00:00
xushiwei
9e1b321ce6 Merge pull request #1308 from visualfc/cabi_riscv
internal/cabi: support risc-v specific target-abi
2025-09-26 16:30:43 +08:00
xushiwei
f40da557af Merge pull request #1323 from visualfc/big
runtime: math/big use math_big_pure_go
2025-09-26 16:20:31 +08:00
xushiwei
c4223df087 Merge pull request #1301 from luoliwoshang/xtensa/o0
llgo/embed:compile with `Oz`  & link with `-s` for embed target to reduce size
2025-09-26 11:13:22 +08:00
visualfc
62d0ee39de runtime: math/big use math_big_pure_go 2025-09-24 10:32:57 +08:00
luoliwoshang
bbcbddfcad internal/crosscompile:ld -S to ensure emit-reloc correct 2025-09-18 15:45:25 +08:00
luoliwoshang
8fa3819714 internal/crosscompile:ld -s for embed target 2025-09-18 15:22:02 +08:00
luoliwoshang
c562f05b51 fix:GenLL correct compile 2025-09-17 14:17:17 +08:00
luoliwoshang
cc5c1144a7 internal/crosscompile:Oz optimize level for embed target 2025-09-16 16:40:45 +08:00
visualfc
db28648d29 internal/cabi: support riscv64/riscv32 target-abi 2025-09-16 12:42:30 +08:00
visualfc
8bfe133bee internal/cabi: support target esp32c3 2025-09-14 20:50:13 +08:00
xushiwei
897f944760 Merge pull request #1296 from visualfc/cabi_esp32
internal/cabi: support target esp32
2025-09-14 10:32:20 +08:00
visualfc
6170c1dcb9 internal/cabi: support target esp32 2025-09-12 11:16:25 +08:00
Li Jie
cc65ee18b5 full test params passing of exported functions 2025-09-12 10:08:01 +08:00
Li Jie
50d1d2e19a remove duplicated return 2025-09-11 15:02:45 +08:00
Li Jie
3605eeeef7 export c header file for build library 2025-09-11 14:07:58 +08:00
Li Jie
a2742a9de4 set buildmode to exe for non-build mode 2025-09-11 08:53:17 +08:00
Li Jie
68947bfc1f Fix library mode linking by optimizing genMainModuleFile
- For library modes (c-archive, c-shared), only generate minimal code with __llgo_argc/__llgo_argv globals
- For executable mode, generate full main function with runtime initialization
- This fixes undefined symbol errors when linking libraries that reference these globals
2025-09-11 08:53:17 +08:00
Li Jie
e05c8b9f46 Implement llgo build mode support (#1197)
- Add BuildMode type with three build modes: exe, c-archive, c-shared
- Restrict buildmode flag to llgo build command only (not run/install/test)
- Implement build mode specific linker arguments:
  - c-shared: use -shared -fPIC flags
  - c-archive: use ar tool to create static archive
  - exe: default executable mode
- Add normalizeOutputPath function for platform-specific file naming conventions
- Generate C header files for library modes
- Fix buildmode flag conflict by removing from PassArgs
- Add comprehensive test coverage for all build modes
- Resolve duplicate logic between defaultAppExt and normalizeOutputPath

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 08:53:17 +08:00
xushiwei
d5ad4d997d Merge pull request #1272 from visualfc/cabi_opt
internal/cabi: call optimization
2025-09-10 13:49:48 +08:00
xushiwei
d0962d8adc Merge pull request #1264 from MeteorsLiu/libc-version
Fix xtensa newlib `stdio` stuck and support libc version
2025-09-10 13:46:36 +08:00
Haolan
073e79d03b chore: rename ArchiveSrcDir 2025-09-10 11:47:02 +08:00
visualfc
dd50d4dff0 internal/cabi: option optimize 2025-09-09 21:10:53 +08:00
visualfc
b6d43ae88a internal/cabi: transformFuncBody check AttrWidthType(2) 2025-09-09 21:04:24 +08:00
visualfc
89e93f9e7a internal/cabi: transformCallInstr check AttrPointer 2025-09-09 21:04:24 +08:00
visualfc
0b6a558667 internal/cbi: replaceParamAlloc 2025-09-09 21:04:24 +08:00
visualfc
937f8339c7 internal/cabi: call optimization 2025-09-09 21:04:24 +08:00
Haolan
8ce6c3b9ab chore: fix commets and format
Update internal/crosscompile/compile/rtlib/rt_test.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

Update internal/crosscompile/compile/libc/libc_test.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

Update internal/crosscompile/compile/libc/libc_test.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

chore: format contents
2025-09-09 18:23:31 +08:00
Haolan
d4474be921 chore: fix some wrong commets 2025-09-09 18:23:31 +08:00
Haolan
6aa63121ff chore: upgrade newlib 2025-09-09 18:23:31 +08:00
Haolan
b239494a9f test: add test for getting config 2025-09-09 18:23:31 +08:00
Haolan
95bd495d7b feat: support libc version 2025-09-09 18:23:31 +08:00
luoliwoshang
68623f0b27 env:find crosscompile llvm 2025-09-09 10:22:43 +08:00
luoliwoshang
a19011897c install with esp-clang & new cache key 2025-09-08 22:52:51 +08:00