How to use a custom crt0.o in Newlib for my OS?

Troy Mitchell <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Hello Newlib developers,

I am working on a custom operating system called Caffeinix
and have created a new directory structure under
newlib/libc/sys/caffeinix:

```
caffeinix
├── aclocal.m4
├── autom4te.cache
├── configure
├── configure.in
├── crt0.c
├── Makefile.am
├── Makefile.in
└── syscalls.c

1 directory, 7 files
```

the syscalls.c works well, but crt0.o is from
libgloss/riscv/crt0.S(I checked by disassembling)

I'm sure my crt0.c is built.

Here is the relevant structure in the build directory:

```
./riscv64-caffeinix/libgloss/riscv/crt0.d
./riscv64-caffeinix/libgloss/riscv/crt0.o
./riscv64-caffeinix/newlib/crt0.o
./riscv64-caffeinix/newlib/libc/crt0.o
./riscv64-caffeinix/newlib/libc/sys/caffeinix/crt0.o
./riscv64-caffeinix/newlib/libc/sys/crt0.o
```

Here are the relevant configurations

Makefile.am

```
AUTOMAKE_OPTIONS = cygnus

INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)

AM_CCASFLAGS = $(INCLUDES)

noinst_LIBRARIES = lib.a

lib_a_SOURCES = syscalls.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)

all-local: crt0.o

ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
```

configure.in

```
AC_PREREQ(2.59)
AC_INIT([newlib], [NEWLIB_VERSION])
AC_CONFIG_SRCDIR([crt0.c])
AC_CONFIG_AUX_DIR(../../../..)
NEWLIB_CONFIGURE(../../..)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
```

Thanks for ur any help!

Best regards,
Troy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.