The last stable release dev-embedded/sdcc-3.5.0 can't be compiled with the last stable sys-devel/gcc-8.2.0-r6. This issue is resolved in the latest sdcc versions.
Can you post a build.log or a link to the fixed bug? Seems to work here.
Created attachment 568290 [details] build.log This is the build.log file. Before gcc-8 update everything was fine. After that the build fails with: x86_64-pc-linux-gnu-g++ -march=core2 -O2 -pipe -g -Wall -I. -I.. -I.. -I../sim.src -I../gui.src -c set.cc -o set.o set.cc: In member function ‘virtual int cl_set_mem_cmd::do_work(cl_uc*, cl_cmdline*, cl_console_base*)’: set.cc:72:54: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [30]’, ‘long unsigned int’ arguments con->dd_printf("Start address less then 0x%"_A_"x\n", ^~~~~ make[2]: *** [Makefile:116: set.o] Error 1 make[2]: Leaving directory '/var/tmp/portage/dev-embedded/sdcc-3.5.0/work/sdcc-3.5.0/sim/ucsim/cmd.src' make[2]: Entering directory '/var/tmp/portage/dev-embedded/sdcc-3.5.0/work/sdcc-3.5.0/sim/ucsim/sim.src' x86_64-pc-linux-gnu-g++ -MM -I. -I.. -I.. -I../cmd.src -I../gui.src test_mem_speed.cc itsrc.cc brk.cc arg.cc stack.cc obsolete.cc sim.cc hw.cc uc.cc mem.cc guiobj.cc >Makefile.dep x86_64-pc-linux-gnu-g++ -march=core2 -O2 -pipe -g -Wall -I. -I.. -I.. -I../cmd.src -I../gui.src -c stack.cc -o stack.o stack.cc: In member function ‘virtual void cl_stack_op::info(cl_console_base*, cl_uc*)’: stack.cc:73:45: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [23]’, ‘long unsigned int’ arguments con->dd_printf("%-4s 0x%06"_A_"x-0x%06"_A_"x %d ", ^~~~~~~ stack.cc: In member function ‘virtual void cl_stack_call::print_info(cl_console_base*)’: stack.cc:169:28: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [7]’, ‘long unsigned int’ arguments con->dd_printf("0x%06"_A_"x", called_addr); ^~~ stack.cc: In member function ‘virtual void cl_stack_intr::print_info(cl_console_base*)’: stack.cc:220:28: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [7]’, ‘long unsigned int’ arguments con->dd_printf("0x%06"_A_"x", called_addr); ^~~ stack.cc: In member function ‘virtual void cl_stack_push::print_info(cl_console_base*)’: stack.cc:282:28: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [7]’, ‘long unsigned int’ arguments con->dd_printf("0x%06"_A_"x", d); ^~~ stack.cc: In member function ‘virtual void cl_error_stack_tracker_empty::print(cl_commander_base*)’: stack.cc:472:54: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [59]’, ‘long unsigned int’ arguments "0x06"_A_"x, SP=0x%06"_A_"x->0x%06"_A_"x\n", ^~~~~ stack.cc: In member function ‘virtual void cl_error_stack_tracker_unmatch::print(cl_commander_base*)’: stack.cc:498:42: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [52]’, ‘long unsigned int’ arguments "SP=0x%06"_A_"x->0x%06"_A_"x\n", ^~~~~ stack.cc: In member function ‘virtual void cl_error_stack_tracker_inconsistent::print(cl_commander_base*)’: stack.cc:523:29: error: unable to find string literal operator ‘operator""_A_’ with ‘const char [46]’, ‘long unsigned int’ arguments c->dd_printf("%s(0x%06"_A_"x): %d byte(s) unread from the stack\n", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: *** [Makefile:105: stack.o] Error 1 I've tried dev-embedded/sdcc-3.8.0-r1 on my amd64 station. It compiles without any failures and works fine for my purposes. I'm not sure how to test cross-compiler so I can't say it's fully stable but in my case dev-embedded/sdcc-3.5.0 doesn't compile after update to sys-devel/gcc-8.2.0-r6.
(In reply to Grigor Lekarov from comment #2) > Created attachment 568290 [details] > build.log > > This is the build.log file. Before gcc-8 update everything was fine. After > that the build fails with: > > x86_64-pc-linux-gnu-g++ -march=core2 -O2 -pipe -g -Wall -I. -I.. -I.. > -I../sim.src -I../gui.src -c set.cc -o set.o > set.cc: In member function ‘virtual int cl_set_mem_cmd::do_work(cl_uc*, > cl_cmdline*, cl_console_base*)’: > set.cc:72:54: error: unable to find string literal operator ‘operator""_A_’ > with ‘const char [30]’, ‘long unsigned int’ arguments > con->dd_printf("Start address less then 0x%"_A_"x\n", > ^~~~~ > make[2]: *** [Makefile:116: set.o] Error 1 Aha, thank you! Should have been fixed upstream in https://sourceforge.net/p/sdcc/code/9597/ Yeah, let's stable new version. Arches, please stabilize for KEYWORDS="amd64 x86"
x86 stable
amd64 stable