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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions