c3c icon indicating copy to clipboard operation
c3c copied to clipboard

[c3c on aarch64] wont compile on termux

Open TymekBrunka opened this issue 1 year ago • 30 comments

Minor isssue, just wanted to try out c3 and also do c3 stuff on phone but there are no release binaries for arm.

Is is possible to compile c3c on and for aarch64?

TymekBrunka avatar Aug 31 '24 21:08 TymekBrunka

As long as you're able to compile LLVM and LLD for it so you have those libraries, it should be straightforward to compile c3c.

lerno avatar Aug 31 '24 21:08 lerno

~/c3c/build $ cmake -DLLVM_DIR=/usr/local/opt/llvm/lib/cmake/llvm/ ..
-- The C compiler identification is Clang 18.1.8
-- The CXX compiler identification is Clang 18.1.8
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /data/data/com.termux/files/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
C3C version: 0.6.2
-- Found CURL: /data/data/com.termux/files/usr/lib/libcurl.so (found version "8.9.1")
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /data/data/com.termux/files/usr/lib/libffi.so
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /data/data/com.termux/files/usr/lib/libtinfo.so
-- Found ZLIB: /data/data/com.termux/files/usr/lib/libz.so (found version "1.3.1")
-- Found zstd: /data/data/com.termux/files/usr/lib/libzstd.so
-- Found LibXml2: /data/data/com.termux/files/usr/lib/libxml2.so (found version "2.13.3")
CMake Error at /data/data/com.termux/files/usr/lib/cmake/llvm/LLVMExports.cmake:1834 (message):
  The imported target "LLVMDemangle" references the file

     "/data/data/com.termux/files/usr/lib/libLLVMDemangle.a"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/data/data/com.termux/files/usr/lib/cmake/llvm/LLVMExports.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /data/data/com.termux/files/usr/lib/cmake/llvm/LLVMConfig.cmake:364 (include)
  CMakeLists.txt:133 (find_package)


-- Configuring incomplete, errors occurred!

TymekBrunka avatar Sep 01 '24 09:09 TymekBrunka

Maybe you only have dynamically linked libraries available? If so the use -DC3_LINK_DYNAMIC=true with CMake.

lerno avatar Sep 01 '24 19:09 lerno

Were you able to solve this?

lerno avatar Sep 03 '24 21:09 lerno

Should I close this?

lerno avatar Sep 07 '24 01:09 lerno

...

TymekBrunka avatar Sep 07 '24 22:09 TymekBrunka

there is no /usr/local on termux and the flag doesnt work both with and without -DLLVM_DIR

TymekBrunka avatar Sep 10 '24 18:09 TymekBrunka

Did you try the -DC3_LINK_DYNAMIC=true flag?

lerno avatar Sep 10 '24 22:09 lerno

yes, that's the flag i was talking about

TymekBrunka avatar Sep 11 '24 06:09 TymekBrunka

So you get the CMake error?

lerno avatar Sep 11 '24 08:09 lerno

yes (just found out that there are libllvm and libllvm-static separetely and installed libllvm-static) and btw what is (/usr)/bin/FileCheck that it failed to find?

TymekBrunka avatar Sep 11 '24 12:09 TymekBrunka

This is what it failed to get libLLVMDemangle

lerno avatar Sep 11 '24 13:09 lerno

do i have to install it or what?

TymekBrunka avatar Sep 11 '24 15:09 TymekBrunka

It is (unfortunately) not unusual that the LLVM libs are broken. So I would look for maybe earlier or later LLVM packages and see if they work. The error you see is in LLVM's own CMake script(!) which is run before any C3 compilation.

lerno avatar Sep 11 '24 19:09 lerno

Ok, so basicly termux llvm doesnt support even setting up build directory, ok, thank you for info.

TymekBrunka avatar Sep 12 '24 09:09 TymekBrunka

We'll try to set up LLVM builds for various linux variants later, that way we'll have everyone covered regardless of LLVM support through package managers.

lerno avatar Sep 12 '24 11:09 lerno

I built c3c on termux successfully via installing these extra packages.

pkg i libllvm-static llvm-tools llvmgold libpolly

But unfortunatelly there is an error on compiling a hello-world file like this issue:

https://github.com/c3lang/c3c/issues/2170

lost22git avatar Jun 07 '25 19:06 lost22git

Even if you set the target to android?

lerno avatar Jun 07 '25 22:06 lerno

Even if you set the target to android?

It just show help string when

c3c --target android-aarch64 compile demo.c3

lost22git avatar Jun 07 '25 22:06 lost22git

For a project rather than one file, I added target: android-aarch64 into project.json and ran c3c run, then got the below error:

; c3c run
 7:
 8: // Android 9
 9: extern fn int* __errno() @if(env::ANDROID);
10: macro int errno() @if(env::ANDROID) => *__errno();
              ^^^^^
(/data/data/com.termux/files/home/code/c3c/lib/std/libc/os/errno.c3:10:11) Error: 'errno' would shadow a previous declaration.

 30: module libc::os @if(!env::LIBC || !(env::LINUX || env::DARWIN || env::WIN32));
 31: tlocal int _errno_c3 = 0;
 32: fn void errno_set(int err) => _errno_c3 = err;
 33: fn int errno() => _errno_c3;
            ^^^^^
(/data/data/com.termux/files/home/code/c3c/lib/std/libc/os/errno.c3:33:8) Note: The previous use of 'errno' was here.

 8: // Android 9
 9: extern fn int* __errno() @if(env::ANDROID);
10: macro int errno() @if(env::ANDROID) => *__errno();
11: macro void errno_set(int err) @if(env::ANDROID) => *(__errno()) = err;
               ^^^^^^^^^
(/data/data/com.termux/files/home/code/c3c/lib/std/libc/os/errno.c3:11:12) Error: 'errno_set' would shadow a previous declaration.

 29: // Default
 30: module libc::os @if(!env::LIBC || !(env::LINUX || env::DARWIN || env::WIN32));
 31: tlocal int _errno_c3 = 0;
 32: fn void errno_set(int err) => _errno_c3 = err;
             ^^^^^^^^^
(/data/data/com.termux/files/home/code/c3c/lib/std/libc/os/errno.c3:32:9) Note: The previous use of 'errno_set' was here.

lost22git avatar Jun 07 '25 22:06 lost22git

I'll fix it.

lerno avatar Jun 08 '25 09:06 lerno

@lost22git If you grab the latest from master, does it compile properly?

lerno avatar Jun 08 '25 09:06 lerno

@lost22git If you grab the latest from master, does it compile properly?

I built c3c from latest source and

c3c init demo && cd demo
c3c run 

but got error

Segmentation fault
  • verbose:
c3c run -vvv
-- INFO: Version: 0.7.3
-- INFO: Detected executable path at /data/data/com.termux/files/home/code/c3c/build/
-- INFO: Library path found at /data/data/com.termux/files/home/code/c3c/build/../lib/
-- INFO: Searching for sources in src/**
-- INFO: Searching for wildcard sources in src/**
-- INFO: Added file main.c3
-- INFO: Triple picked was aarch64-linux-android.
-- INFO: Default was aarch64-unknown-linux-android24.
-- INFO: Added file ascii.c3
-- INFO: Added file atomic.c3
-- INFO: Added file atomic_nolibc.c3
-- INFO: Added file bits.c3
-- INFO: Added file anylist.c3
-- INFO: Added file bitset.c3
-- INFO: Added file elastic_array.c3
-- INFO: Added file enummap.c3
-- INFO: Added file enumset.c3
-- INFO: Added file hashmap.c3
-- INFO: Added file linkedlist.c3
-- INFO: Added file list.c3
-- INFO: Added file list_common.c3
-- INFO: Added file maybe.c3
-- INFO: Added file object.c3
-- INFO: Added file priorityqueue.c3
-- INFO: Added file range.c3
-- INFO: Added file ringbuffer.c3
-- INFO: Added file tuple.c3
-- INFO: Added file qoi.c3
-- INFO: Added file arena_allocator.c3
-- INFO: Added file backed_arena_allocator.c3
-- INFO: Added file dynamic_arena.c3
-- INFO: Added file heap_allocator.c3
-- INFO: Added file libc_allocator.c3
-- INFO: Added file on_stack_allocator.c3
-- INFO: Added file temp_allocator.c3
-- INFO: Added file tracking_allocator.c3
-- INFO: Added file array.c3
-- INFO: Added file ascii.c3
-- INFO: Added file bitorder.c3
-- INFO: Added file builtin.c3
-- INFO: Added file builtin_comparison.c3
-- INFO: Added file cinterop.c3
-- INFO: Added file conv.c3
-- INFO: Added file dstring.c3
-- INFO: Added file env.c3
-- INFO: Added file mem.c3
-- INFO: Added file mem_allocator.c3
-- INFO: Added file wasm_memory.c3
-- INFO: Added file cpu_detect.c3
-- INFO: Added file macho_runtime.c3
-- INFO: Added file main_stub.c3
-- INFO: Added file runtime.c3
-- INFO: Added file runtime_benchmark.c3
-- INFO: Added file runtime_test.c3
-- INFO: Added file asan.c3
-- INFO: Added file sanitizer.c3
-- INFO: Added file tsan.c3
-- INFO: Added file slice2d.c3
-- INFO: Added file string.c3
-- INFO: Added file string_iterator.c3
-- INFO: Added file string_to_real.c3
-- INFO: Added file test.c3
-- INFO: Added file types.c3
-- INFO: Added file values.c3
-- INFO: Added file crypto.c3
-- INFO: Added file dh.c3
-- INFO: Added file rc4.c3
-- INFO: Added file base32.c3
-- INFO: Added file base64.c3
-- INFO: Added file csv.c3
-- INFO: Added file encoding.c3
-- INFO: Added file hex.c3
-- INFO: Added file json.c3
-- INFO: Added file FrameScheduler.c3
-- INFO: Added file adler32.c3
-- INFO: Added file crc32.c3
-- INFO: Added file crc64.c3
-- INFO: Added file fnv32a.c3
-- INFO: Added file fnv64a.c3
-- INFO: Added file hmac.c3
-- INFO: Added file md5.c3
-- INFO: Added file sha1.c3
-- INFO: Added file sha256.c3
-- INFO: Added file bits.c3
-- INFO: Added file file.c3
-- INFO: Added file formatter.c3
-- INFO: Added file formatter_private.c3
-- INFO: Added file io.c3
-- INFO: Added file chdir.c3
-- INFO: Added file file_libc.c3
-- INFO: Added file file_nolibc.c3
-- INFO: Added file fileinfo.c3
-- INFO: Added file getcwd.c3
-- INFO: Added file ls.c3
-- INFO: Added file mkdir.c3
-- INFO: Added file rmdir.c3
-- INFO: Added file rmtree.c3
-- INFO: Added file temp_directory.c3
-- INFO: Added file path.c3
-- INFO: Added file stream.c3
-- INFO: Added file buffer.c3
-- INFO: Added file bytebuffer.c3
-- INFO: Added file bytereader.c3
-- INFO: Added file bytewriter.c3
-- INFO: Added file limitreader.c3
-- INFO: Added file multireader.c3
-- INFO: Added file multiwriter.c3
-- INFO: Added file scanner.c3
-- INFO: Added file teereader.c3
-- INFO: Added file libc.c3
-- INFO: Added file libc_extra.c3
-- INFO: Added file android.c3
-- INFO: Added file darwin.c3
-- INFO: Added file errno.c3
-- INFO: Added file freebsd.c3
-- INFO: Added file linux.c3
-- INFO: Added file posix.c3
-- INFO: Added file win32.c3
-- INFO: Added file termios.c3
-- INFO: Added file bigint.c3
-- INFO: Added file complex.c3
-- INFO: Added file easing.c3
-- INFO: Added file math.c3
-- INFO: Added file __cos.c3
-- INFO: Added file __cosdf.c3
-- INFO: Added file __fmod.c3
-- INFO: Added file __sin.c3
-- INFO: Added file __sindf.c3
-- INFO: Added file __tan.c3
-- INFO: Added file __tandf.c3
-- INFO: Added file acos.c3
-- INFO: Added file asin.c3
-- INFO: Added file atan.c3
-- INFO: Added file atanh.c3
-- INFO: Added file ceil.c3
-- INFO: Added file cos.c3
-- INFO: Added file exp.c3
-- INFO: Added file exp2.c3
-- INFO: Added file fabs.c3
-- INFO: Added file floor.c3
-- INFO: Added file frexp.c3
-- INFO: Added file ldexp.c3
-- INFO: Added file log.c3
-- INFO: Added file log1p.c3
-- INFO: Added file math_nolibc.c3
-- INFO: Added file pow.c3
-- INFO: Added file rempi.c3
-- INFO: Added file round.c3
-- INFO: Added file scalbn.c3
-- INFO: Added file sin.c3
-- INFO: Added file sincos.c3
-- INFO: Added file tan.c3
-- INFO: Added file trig.c3
-- INFO: Added file trunc.c3
-- INFO: Added file matrix.c3
-- INFO: Added file quaternion.c3
-- INFO: Added file random.c3
-- INFO: Added file math.lcg.c3
-- INFO: Added file math.mcg.c3
-- INFO: Added file math.msws.c3
-- INFO: Added file math.pcg.c3
-- INFO: Added file math.seeder.c3
-- INFO: Added file math.sfc.c3
-- INFO: Added file math.simple_random.c3
-- INFO: Added file i128.c3
-- INFO: Added file math_supplemental.c3
-- INFO: Added file uuid.c3
-- INFO: Added file vector.c3
-- INFO: Added file inetaddr.c3
-- INFO: Added file net.c3
-- INFO: Added file android.c3
-- INFO: Added file common.c3
-- INFO: Added file darwin.c3
-- INFO: Added file linux.c3
-- INFO: Added file posix.c3
-- INFO: Added file win32.c3
-- INFO: Added file socket.c3
-- INFO: Added file socket_private.c3
-- INFO: Added file tcp.c3
-- INFO: Added file udp.c3
-- INFO: Added file url.c3
-- INFO: Added file url_encoding.c3
-- INFO: Added file log.c3
-- INFO: Added file backtrace.c3
-- INFO: Added file cpu.c3
-- INFO: Added file env.c3
-- INFO: Added file general.c3
-- INFO: Added file heap.c3
-- INFO: Added file linux.c3
-- INFO: Added file cf_allocator.c3
-- INFO: Added file cf_array.c3
-- INFO: Added file cocoa.c3
-- INFO: Added file core_foundation.c3
-- INFO: Added file darwin.c3
-- INFO: Added file general.c3
-- INFO: Added file heap.c3
-- INFO: Added file objc.c3
-- INFO: Added file general.c3
-- INFO: Added file general.c3
-- INFO: Added file os.c3
-- INFO: Added file clock.c3
-- INFO: Added file files.c3
-- INFO: Added file general.c3
-- INFO: Added file heap.c3
-- INFO: Added file net.c3
-- INFO: Added file process.c3
-- INFO: Added file threads.c3
-- INFO: Added file subprocess.c3
-- INFO: Added file clock.c3
-- INFO: Added file files.c3
-- INFO: Added file gdi.c3
-- INFO: Added file general.c3
-- INFO: Added file heap.c3
-- INFO: Added file process.c3
-- INFO: Added file types.c3
-- INFO: Added file wincon.c3
-- INFO: Added file windef.c3
-- INFO: Added file winuser.c3
-- INFO: Added file ws2def.c3
-- INFO: Added file wsa.c3
-- INFO: Added file binarysearch.c3
-- INFO: Added file countingsort.c3
-- INFO: Added file insertionsort.c3
-- INFO: Added file quicksort.c3
-- INFO: Added file sort.c3
-- INFO: Added file sorted.c3
-- INFO: Added file buffered_channel.c3
-- INFO: Added file event_thread.c3
-- INFO: Added file fixed_pool.c3
-- INFO: Added file cpu.c3
-- INFO: Added file thread_none.c3
-- INFO: Added file thread_posix.c3
-- INFO: Added file thread_win32.c3
-- INFO: Added file pool.c3
-- INFO: Added file thread.c3
-- INFO: Added file unbuffered_channel.c3
-- INFO: Added file clock.c3
-- INFO: Added file datetime.c3
-- INFO: Added file format.c3
-- INFO: Added file time_darwin.c3
-- INFO: Added file time_posix.c3
-- INFO: Added file time_win32.c3
-- INFO: Added file time.c3
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-armv8,+neon
-- INFO: CPU: (null)
-- INFO: Features: +crc,+lse,+rdm,+fp-arm
-- AST/EXPR/TYPE INFO --
 * Ast size: 56 bytes
 * Decl size: 136 bytes
 * Expr size: 56 bytes
 * TypeInfo size: 40 bytes
 * Ast memory use: 3194kb (58416 elements)
 * Decl memory use: 4531kb (34119 elements)
 * Expr memory use: 13086kb (239300 elements)
 * TypeInfo memory use: 1431kb (36643 elements)
-- ARENA INFO --
 * Memory used:  32501 Kb
 * Allocations: 114518
 * String memory used:  313 Kb
-- INFO: Will use 4 thread(s).

-- INFO: Using cc linker.
Segmentation fault

lost22git avatar Jun 08 '25 10:06 lost22git

I made some further updates.

lerno avatar Jun 08 '25 13:06 lerno

I made some further updates.

Program linked to executable 'build/demo'.
Launching ./build/demo

ERROR: 'No method 'acquire' could be found on target', in _$main (mem_allocator.c3:85)
Program interrupted by signal 5.

lost22git avatar Jun 08 '25 14:06 lost22git

Hmm.. looks like the libc startup isn't running for some reason.

lerno avatar Jun 08 '25 14:06 lerno

This is the current state on my phone (ignore logging that's leftover $echo from testing a prev c3c bug):

Image

Book-reader avatar Jun 12 '25 23:06 Book-reader

I made some further updates.

Program linked to executable 'build/demo'.
Launching ./build/demo

ERROR: 'No method 'acquire' could be found on target', in _$main (mem_allocator.c3:85)
Program interrupted by signal 5.

For hello-wrold demo, this error is raised on main function with String[] args. If without the params, it run well.

Edit:

It seems that errors will occur as long as memory allocation is involved.

lost22git avatar Jun 14 '25 14:06 lost22git

This is likely due to the incorrect libc startup files being linked. This prevents libc startup and so @init functions are not run.

lerno avatar Jun 15 '25 00:06 lerno

This is likely due to the incorrect libc startup files being linked. This prevents libc startup and so @init functions are not run.

; ldd $(which fd)
        libdl.so => /system/lib64/libdl.so
        libc.so => /system/lib64/libc.so
        ld-android.so => /system/lib64/ld-android.so

hello/c3 on  main [✘!?]
; ldd demo
        libdl.so => /system/lib64/libdl.so
        libm.so => /system/lib64/libm.so
        libc.so => /system/lib64/libc.so
        ld-android.so => /system/lib64/ld-android.so

What should I do to make it work ?

lost22git avatar Jun 15 '25 13:06 lost22git