Not sure how to best explain this problem so for now I'm linking the upload of the code (run make from inside the parser directory or common directory, the GNUmakefile has yet to be updated) and posting the output along with the code snippet of parser/main.c that reports the error:

Files * 930c7fdeb729310a228cbfc29bf182f3335ec1a4 * Lee Shallis / Dragonbuilder * GitLab

Code:
make DEBUG=1 run
cd ../parser/ && make DEBUG=1 run
*.c=main.c OfC.c offset.c parsed.c parser.c value.c
cc -shared -fPIC -ggdb -D DEBUG=1 -o ../common/path.c.d.o -c ../common/path.c
cd ../common/ && make DEBUG=1 build
cc -shared -fPIC -o ../libd-common.so basset.c.d.o binary.c.d.o block.c.d.o blocks.c.d.o data.c.d.o deemer.c.d.o errors.c.d.o path.c.d.o stream.c.d.o string.c.d.o takers.c.d.o tasset.c.d.o zlib.c.d.o -L ../ -Wl,-rpath,.
cc -shared -fPIC -ggdb -o ../libd-parse.so OfC.c.d.o offset.c.d.o parsed.c.d.o parser.c.d.o value.c.d.o -Wl,-rpath,. -l d-common
cc -ggdb -o ../d-parse.out main.d.d.o -Wl,-rpath,. -ld-parse -l d-common
cd ../ && ./d-parse.out shaders/shaders.glsl
pf1 given path = '/run/user/1000/6004852B2E6AD8591E29FBDA4C809B7A'
pf1 fixed path = '/run/user/1000/6004852B2E6AD8591E29FBDA4C809B7A'
pf2 given path = '/run/user/1000/78C761641034BFA66DF18B8336FF0CB1'
pf2 fixed path = '/run/user/1000/78C761641034BFA66DF18B8336FF0CB1'
Trying argument 'shaders/shaders.glsl'
main.c:65: Error 0x00000010 (16) EBUSY: 'Device or resource busy'
Compilation finished successfully.
Code:
	for ( i = 1; i < argc; ++i )
	{
		fprintf( out, "Trying argument '%s'\n", argv[i] );

		err = SeekLasset( src, argv[i], FILE_FLG_RD, 0 );
		if ( err )
		{
			ECHO_ERROR( out, err );
			goto done;
		}

		err = SplitSource( &Parser, src, pf1 );
		if ( err )
		{
			ECHO_ERROR( out, err );
			goto done;
		}
It's about time I did my morning walk (for health reasons) so I'll respond to any questions when I get back... and post any in depth explanation I come up with while walking (if at all)