From 4086cda00dc9b83b6968c385c22431eb4c6d4dd1 Mon Sep 17 00:00:00 2001 From: Luke Ceddia Date: Mon, 19 Dec 2022 22:36:58 +1100 Subject: [PATCH] Clean up nm commands --- source/qb64pe.bas | 16 ++++++++-------- source/utilities/build.bas | 4 ++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/source/qb64pe.bas b/source/qb64pe.bas index f1b06ab6a..728079e57 100644 --- a/source/qb64pe.bas +++ b/source/qb64pe.bas @@ -12577,7 +12577,7 @@ END IF 'Clear nm output from previous runs FOR x = 1 TO ResolveStaticFunctions IF LEN(ResolveStaticFunction_File(x)) THEN - s$ = tmpdir$ + "nm_output_" + StrReplace$(StrReplace$(ResolveStaticFunction_File(x), pathsep$, "."), ":", ".") + ".txt" + s$ = MakeNMOutputFilename$(ResolveStaticFunction_File(x)) IF _FILEEXISTS(s$) THEN KILL s$ END IF NEXT x @@ -12588,12 +12588,12 @@ IF os$ = "WIN" THEN 'resolve static function definitions and add to global.txt FOR x = 1 TO ResolveStaticFunctions - nm_output_file$ = tmpdir$ + "nm_output_" + StrReplace$(StrReplace$(ResolveStaticFunction_File(x), pathsep$, "."), ":", ".") + ".txt" + nm_output_file$ = MakeNMOutputFilename$(ResolveStaticFunction_File(x)) IF LEN(ResolveStaticFunction_File(x)) THEN n = 0 IF NOT _FILEEXISTS(nm_output_file$) THEN - SHELL _HIDE "cmd /c internal\c\c_compiler\bin\nm.exe " + CHR$(34) + ResolveStaticFunction_File(x) + CHR$(34) + " --demangle -g >" + CHR$(34) + nm_output_file$ + CHR$(34) + SHELL _HIDE "cmd /c internal\c\c_compiler\bin\nm.exe " + AddQuotes$(ResolveStaticFunction_File(x)) + " --demangle -g >" + AddQuotes$(nm_output_file$) END IF fh = FREEFILE s$ = " " + ResolveStaticFunction_Name(x) + "(" @@ -12650,7 +12650,7 @@ IF os$ = "WIN" THEN IF n = 0 THEN 'a C++ dynamic object library? IF NOT _FILEEXISTS(nm_output_file$) THEN - SHELL _HIDE "cmd /c internal\c\c_compiler\bin\nm.exe " + CHR$(34) + ResolveStaticFunction_File(x) + CHR$(34) + " -D --demangle -g >" + CHR$(34) + nm_output_file$ + CHR$(34) + SHELL _HIDE "cmd /c internal\c\c_compiler\bin\nm.exe " + AddQuotes$(ResolveStaticFunction_File(x)) + " -D --demangle -g >" + AddQuotes$(nm_output_file$) END IF fh = FREEFILE s$ = " " + ResolveStaticFunction_Name(x) + "(" @@ -12745,13 +12745,13 @@ IF os$ = "LNX" THEN END IF FOR x = 1 TO ResolveStaticFunctions - nm_output_file$ = tmpdir$ + "nm_output_" + StrReplace$(StrReplace$(ResolveStaticFunction_File(x), pathsep$, "."), ":", ".") + ".txt" + nm_output_file$ = MakeNMOutputFilename$(ResolveStaticFunction_File(x)) IF LEN(ResolveStaticFunction_File(x)) THEN n = 0 IF NOT _FILEEXISTS(nm_output_file$) THEN - IF MacOSX = 0 THEN SHELL _HIDE "nm " + CHR$(34) + ResolveStaticFunction_File(x) + CHR$(34) + " --demangle -g >" + CHR$(34) + nm_output_file$ + CHR$(34) + " 2>" + CHR$(34) + tmpdir$ + "nm_error.txt" + CHR$(34) - IF MacOSX THEN SHELL _HIDE "nm " + CHR$(34) + ResolveStaticFunction_File(x) + CHR$(34) + " >" + CHR$(34) + nm_output_file$ + CHR$(34) + " 2>" + CHR$(34) + tmpdir$ + "nm_error.txt" + CHR$(34) + IF MacOSX = 0 THEN SHELL _HIDE "nm " + AddQuotes$(ResolveStaticFunction_File(x)) + " --demangle -g >" + AddQuotes$(nm_output_file$) + " 2>" + AddQuotes$(tmpdir$ + "nm_error.txt") + IF MacOSX THEN SHELL _HIDE "nm " + AddQuotes$(ResolveStaticFunction_File(x)) + " >" + AddQuotes$(nm_output_file$) + " 2>" + AddQuotes$(tmpdir$ + "nm_error.txt") END IF IF MacOSX = 0 THEN 'C++ name demangling not supported in MacOSX @@ -12813,7 +12813,7 @@ IF os$ = "LNX" THEN IF n = 0 THEN 'a C++ dynamic object library? IF MacOSX THEN GOTO macosx_libfind_failed IF NOT _FILEEXISTS(nm_output_file$) THEN - SHELL _HIDE "nm " + CHR$(34) + ResolveStaticFunction_File(x) + CHR$(34) + " -D --demangle -g >" + CHR$(34) + nm_output_file$ + CHR$(34) + " 2>" + CHR$(34) + tmpdir$ + "nm_error.txt" + CHR$(34) + SHELL _HIDE "nm " + AddQuotes$(ResolveStaticFunction_File(x)) + " -D --demangle -g >" + AddQuotes$(nm_output_file$) + " 2>" + AddQuotes$(tmpdir$ + "nm_error.txt") END IF fh = FREEFILE s$ = " " + ResolveStaticFunction_Name(x) + "(" diff --git a/source/utilities/build.bas b/source/utilities/build.bas index fc41697bd..b03838c3b 100644 --- a/source/utilities/build.bas +++ b/source/utilities/build.bas @@ -26,3 +26,7 @@ FUNCTION GetMakeExecutable$ () GetMakeExecutable$ = "make" END IF END FUNCTION + +FUNCTION MakeNMOutputFilename$ (libfile AS STRING) + MakeNMOutputFilename$ = tmpdir$ + "nm_output_" + StrReplace$(StrReplace$(libfile, pathsep$, "."), ":", ".") + ".txt" +END FUNCTION