Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Improve] ./build.sh, cxx/*: Support all C++11 systems #19

Open
SwuduSusuwu opened this issue Nov 17, 2024 · 3 comments
Open

[Improve] ./build.sh, cxx/*: Support all C++11 systems #19

SwuduSusuwu opened this issue Nov 17, 2024 · 3 comments
Labels
good first issue Good for newcomers improve New feature or request todo unimplemented (but advertised) part of the tool

Comments

@SwuduSusuwu
Copy link
Owner

SwuduSusuwu commented Nov 17, 2024

Issue #18 is a request to improve overall support for systems/tools,
which includes d7370e8 (allows to build with -std=c++11), but some functions (such as cxx/ClassSys.hxx:execv*) support just _POSIX (not _WIN32).
./build.sh --mingw can produce executables from POSIX to Windows, the set of POSIX + Windows is most operating systems, but there is no ./build.bat (with which to build from Windows to Windows).

This issue is closed once all operating systems (which support C++11) can build + execute this.
Lots to do. If you want this: respond that you wish more resources go to this, or contribute.

@SwuduSusuwu
Copy link
Owner Author

SwuduSusuwu commented Nov 18, 2024

?cxx/Macros.hxx: +SUSUWU_DEFAULT, +SUSUWU_FINAL,@420b4a improves -std=c++11 support.

@SwuduSusuwu SwuduSusuwu changed the title [Improve] ./build.sh, `cxx/*: Support all C++11 systems [Improve] ./build.sh, cxx/*: Support all C++11 systems Nov 18, 2024
@SwuduSusuwu
Copy link
Owner Author

This issue must close for https://github.com/SwuduSusuwu/SubStack/milestone/8 to close,
but due to GitHub's limit of 1 milestone per issue, just https://github.com/SwuduSusuwu/SubStack/milestone/7 includes this issue.
Most of the milestones have this problem, which is the reason that most milestones have just 1 issue (thus progress is "0%" or "Closed".)

@SwuduSusuwu
Copy link
Owner Author

--mingw/SUSUWU_WIN32 regression fix, typos fix@f2cf644 allows ./build.sh --mingw to build ./bin/a.exe for Windows,
but execves is still limited to POSIX, thus wine ./bin/a.exe fails the unit tests.

SwuduSusuwu added a commit that referenced this issue Nov 22, 2024
?`Macros.sh`:
	?`SUSUWU_CLEAN_OUTPUT_IMPL`: move '*' out of double quotes, to fix `"./obj/*.o" not found`.
	?`SUSUWU_ESCAPE_PATH`: preemptive fix for special case (if ""=${2+}), which now won't affix "\\ ".
Is followup to 86486ac (?Macros.sh: `s/[^}"]${\(\w\+\)}[^"$]/ \"${\1}\""/`), which caused the regression (purpose was to allow spaces in paths).
Issues: improves #19 (`make` analog through `./Macros.sh`).
SwuduSusuwu added a commit that referenced this issue Nov 22, 2024
?`cxx/ClassSys.hxx`, ?`cxx/ClassSys.cxx`:
	+`classSysGetOwnPath()`:
		If Linux; `return "/proc/self/exe";`,
		if Windows; `return GetModuleFileName(GetModuleHandle(NULL))l`
		if others `return classSysArgs[0]; /* is `argv[0] stored from `main()` */`
	+`classSysFopenOwnPath()`: for now is just `return fopen(classSysGetOwnPath(), "r");`.
	?`execvesfork`: Comments have typo fixes.
Issues: closes #25 (those 2 functions are the whole issue), improves #19 (Windows support).

?`cxx/VirusAnalysis.cxx`: ?`virusAnalysisTests()`:
	Replace `classSysArgc`, `classSysArgs[0]`, `#ifdef __linux__`, `"/proc/self/exe" with;
	`classSysGetOwnPath().
Is followup to: 5f0ffd8 (?`virusAnalysisTests()`: if Linux, use procfs:).

?`posts/PortableExecutable.md`:
	Include all this.
	Remove (accidental) extra inclusion of `cxx/Macros.hxx`: 4920b4a (which `git blame` says did the extra inclusion.)
@SwuduSusuwu SwuduSusuwu added improve New feature or request todo unimplemented (but advertised) part of the tool labels Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers improve New feature or request todo unimplemented (but advertised) part of the tool
Projects
None yet
Development

No branches or pull requests

1 participant