Skip to content

Bug: Can't use object created with cosmo-clang to link against objects compiled with cosmoc++ #1317

@Rucadi

Description

@Rucadi

Contact Details

No response

What happened?

I wanted to use cosmo-clang to compile C23-compliant code, in this case, I have a header:

#pragma once

#ifdef __cplusplus
extern "C" {
#endif
extern const char style_css[];
#ifdef __cplusplus
}	// extern "C"
#endif

and the c file:

#include "embedded_data.h"
const char style_css[] = {
        #embed "style.css"
};

I needed this compiled with clang, since GCC won't support the #embed directive until GCC15.

After compiling it with cosmo-clang from the latest package release:
cosmo-clang embedded_data.c -c

I tried to compile-and-link an executable using cosmoc++, which uses GCC14, resulting in this error:

cosmoc++ main.cpp static/embedded_data.o 
cosmoc++: fatal error: static/embedded_data.o: linker input missing concomitant static/.aarch64/embedded_data.o file
compilation terminated.

Since I saw that the "cosmo-clang" existed, I assumed it was to use, is this supported? Or I'm not supposed to mix cosmo-clang with cosmoc++?

Version

14.1.0

What operating system are you seeing the problem on?

Linux

Relevant log output

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    low severityUsed to report low severity bugs (e.g. cosmetic issues, non critical UI glitches)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions