You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running makerom in 64-bit Linux, a SIGSEGV happens in yaml_parser_append_tag_directive when checking if a directive already exists.
This is because the directive handle pointer pushed is invalid.
The root cause is that when running gcc with -std=c11, strdup is not defined on Linux.
When it is used in yaml_strdup, it is then implicitly defined as returning int which is 32-bit size on Linux (the generated assembly code truncates the strdup result using CDQE instruction.
Two solutions for this: either use -std=gnu11 which enables all GNU extensions or add -D_GNU_SOURCE to CFLAGS to make strdup defined (gnu11 makes this definition plus enables other extensions) in file makerom/deps/libyaml/makefile.
The text was updated successfully, but these errors were encountered:
When running makerom in 64-bit Linux, a SIGSEGV happens in
yaml_parser_append_tag_directive
when checking if a directive already exists.This is because the directive handle pointer pushed is invalid.
The root cause is that when running gcc with
-std=c11
,strdup
is not defined on Linux.When it is used in
yaml_strdup
, it is then implicitly defined as returningint
which is 32-bit size on Linux (the generated assembly code truncates thestrdup
result usingCDQE
instruction.Two solutions for this: either use
-std=gnu11
which enables all GNU extensions or add-D_GNU_SOURCE
toCFLAGS
to makestrdup
defined (gnu11 makes this definition plus enables other extensions) in filemakerom/deps/libyaml/makefile
.The text was updated successfully, but these errors were encountered: