Skip to content

make-cdi does not generate a CDI due to wrong input elf file #38

Description

@freakdave

Here is the log:

make
cp ../target-src/1st_read/1st_read.bin 1st_read.bin
/opt/toolchains/dc/bin/mkdcdisc -n dctoolip -e 1st_read.bin -N -o dctoolip.cdi -v 3 -m -d romdisk
Pre-run checks finished. Beginning generation!
Created temporary directory at: "/tmp/6e1b3ac1c03d6232"
Gathering files from specified directories
Loading "1st_read.bin"
Loaded 23792 bytes from ELF
mkdcdisc: ../src/elf_parser.cpp:111: static std::optional<std::shared_ptrelfparser::Parser > elfparser::Parser::Load(const std::vector&): Assertion `elf_data[0] == 0x7F' failed.
make: *** [Makefile:10: dctoolip] Aborted (core dumped)

I was able to make it work by modifying the makefile, so that it will now load "loader.elf" which mkdcdisc will happily accept.
mkdcdisc's -e parameter expects an elf file (not a binary).
Also I had to remove "romdisk".

CDRECORD  = wodim dev=0,0,0 speed=8
DD        = dd
CP        = cp
MKISOFS   = genisoimage
CAT       = cat
TOUCH     = touch

# Path to the ELF that mkdcdisc expects
LOADER_ELF = ../target-src/1st_read/loader.elf

# Default target
all: dctoolip

# Build CDI using the ELF (not 1st_read.bin)
dctoolip: $(LOADER_ELF)
	/opt/toolchains/dc/bin/mkdcdisc \
		-n $@ \
		-e $< \
		-N \
		-o $@.cdi \
		-v 3 \
		-m

# Build the ELF via the sub-project
$(LOADER_ELF):
	cd ../target-src && make

.PHONY: all clean

clean:
	rm -f dctoolip.cdi
	cd ../target-src && make clean

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions