unikraft / lib-musl

musl: A C standard library
Other
9 stars 29 forks source link

Makefile.uk.musl.exit: Patch for building on case insensitive file systems #70

Closed Starnox closed 1 year ago

Starnox commented 1 year ago

Add exit variant to __Exit.c in order to avoid symbol conflicts on case insensitive file systems

skuenzer commented 1 year ago

Hi, the PR looks good. Just a minor comment: In the commit message can you replace "Darwin does not support case sensitive"? It actually supports it but the support depends on how a volume got formatted. Case-insensitive is just the default setting. Maybe rephrase slightly your commit and title that the is done to support case-insensitive filesystems. It could probably even happen on Linux environments if the underlying file system is restricted. No need to mention Darwin.

Another minor thing: Can you rename the _Exit.c file to _exit.c (git mv _Exit.c _exit.c and adopt Makefile.uk accordingly: _exit.c|unikraft). This removes any leftovers of case sensitivity. Our build system is anyways also not good in handling case sensitive filenames.

Thanks, Simon

Ups, sorry, the conflict actually occurs because:

Makefile.uk.musl.unistd
22:LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/_exit.c

Makefile.uk.musl.exit
20:LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/_Exit.c

However, both source files are part of the extracted musl archive, so please do not rename any files. I'd actually name the variant |exit instead of |unikraft because the file is - if you want - from musl's exit subsystem. So far we used the |unikraft variant for glue code that had a conflicting source file name.

Thanks, Simon