From 26609cb621ce63bc58c9cb7db1b5dfc7fdc9c6dc Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Sat, 20 Jun 2026 19:44:02 +0100 Subject: [PATCH] Default to no leading underscore for -m64 and added -fleading-underscore option --- lib.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/lib.c b/lib.c index c5dfed4..3d7c051 100755 --- a/lib.c +++ b/lib.c @@ -37,17 +37,18 @@ struct cc_option { #define CC_OPTION_DEFINE 4 #define CC_OPTION_HELP 5 #define CC_OPTION_INCLUDE 6 -#define CC_OPTION_NO_LEADING_UNDERSCORE 7 -#define CC_OPTION_NO_LINEMARKERS 8 -#define CC_OPTION_MASM 9 -#define CC_OPTION_MAX_ERRORS 10 -#define CC_OPTION_MLONG64 11 -#define CC_OPTION_OUTFILE 12 -#define CC_OPTION_PEDANTIC 13 -#define CC_OPTION_PREPOCESS 14 -#define CC_OPTION_STD 15 -#define CC_OPTION_TRANDITIONAL_LINEMARKERS 16 -#define CC_OPTION_UNDEF 17 +#define CC_OPTION_LEADING_UNDERSCORE 7 +#define CC_OPTION_MASM 8 +#define CC_OPTION_MAX_ERRORS 9 +#define CC_OPTION_MLONG64 10 +#define CC_OPTION_NO_LEADING_UNDERSCORE 12 +#define CC_OPTION_NO_LINEMARKERS 13 +#define CC_OPTION_OUTFILE 14 +#define CC_OPTION_PEDANTIC 15 +#define CC_OPTION_PREPOCESS 16 +#define CC_OPTION_STD 17 +#define CC_OPTION_TRANDITIONAL_LINEMARKERS 18 +#define CC_OPTION_UNDEF 19 static struct cc_option opts[] = { @@ -68,6 +69,7 @@ static struct cc_option opts[] = { { "-S", CC_OPTION_COMPILE, CC_OPTION_NO_ARG }, { "-fno-leading-underscore", CC_OPTION_NO_LEADING_UNDERSCORE, CC_OPTION_NO_ARG }, + { "-fleading-underscore", CC_OPTION_LEADING_UNDERSCORE, CC_OPTION_NO_ARG }, { "-fmax-errors", CC_OPTION_MAX_ERRORS, CC_OPTION_EQUALS_ARG }, { "-mlong64", CC_OPTION_MLONG64, CC_OPTION_NO_ARG }, { "-masm", CC_OPTION_MASM, CC_OPTION_EQUALS_ARG }, @@ -131,6 +133,7 @@ static void print_usage (void) { fprintf (stderr, " -fmax-errors= Stop execution after errros.\n"); fprintf (stderr, "\n"); fprintf (stderr, " -fno-leading-underscore Don't prefix symbols with an underscore.\n"); + fprintf (stderr, " -fleading-underscore Prefix symbols with an underscore.\n"); fprintf (stderr, " -mlong64 Convert long to 64-bit.\n"); fprintf (stderr, "\n"); fprintf (stderr, " -P Don't print linemarkers.\n"); @@ -362,7 +365,9 @@ void parse_args (int argc, char **argv, int optind) { case CC_OPTION_BITS64: { + state->no_leading_underscore = 1; state->bits = 64; + break; } @@ -409,6 +414,13 @@ void parse_args (int argc, char **argv, int optind) { } + case CC_OPTION_LEADING_UNDERSCORE: { + + state->no_leading_underscore = 0; + break; + + } + case CC_OPTION_MASM: { if (strcmp (optarg, "intel") == 0) { -- 2.34.1