Ranter
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Comments
-
Any chance you have spaces in file names? "make" can cause problems with that if the makefile isn't absolutely water tight.
-
Parzi88335y@Fast-Nop it worked with a lower toolchain version and it's got one file with caps and that's the weirdest the names get. Funnily enough that's the file with the most forgotten references.
fuck c i swear -
@Parzi caps are OK. Usually, ld itself doesn't get the wildcard because the shell should expand that before it gets to ld. Is there some path expansion issue on the CLI?
In makefiles, there's usually just *.c, *.cpp, *.h and *.o mentioned. -
Parzi88335y@Fast-Nop it's got *.d files defined but unused and massive *_rules files imported from the chain that just alias commands ("make_elf" for example, which is where linking happens and just runs ld with already-defined args and such from the user makefile)
There's no known path expansion issue, it's literally just "build/*.o" which seems pretty standard. -
Parzi88335yUpdate: Apparently, the issue was the original codebase had latching header files, and the linker was confused by .c files that did literally nothing but expand functions defined in the matching header files. Now to solve what a few functions from the code are that have no match in any file, toolchain or otherwise, and we'll be good, probably.
Anyone know why the fuck ld would fail with undefined references on a file it's told to include by wildcard? Do I have to manually order all these fucking .o files?
rant