mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-04 18:28:30 +00:00
Make build hermetic without shell scripts
- Fix some minor issues in ar.com - Have execve() look for `ape` command - Rewrite NT paths using /c/ rather /??/c:/ - Replace broken GCC symlinks with .sym files - Rewrite $PATH environment variables on startup - Make $(APE_NO_MODIFY_SELF) the default bootloader - Add all build command dependencies to build/bootstrap - Get the repository mostly building from source on non-Linux
This commit is contained in:
parent
d44ff6ce1f
commit
d230a01222
160 changed files with 2754 additions and 1342 deletions
|
@ -34,6 +34,10 @@
|
|||
|
||||
char program_executable_name[PATH_MAX];
|
||||
|
||||
static inline int IsAlpha(int c) {
|
||||
return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z');
|
||||
}
|
||||
|
||||
static inline char *StrCat(char buf[PATH_MAX], const char *a, const char *b) {
|
||||
char *p, *e;
|
||||
p = buf;
|
||||
|
@ -56,16 +60,16 @@ static inline void GetProgramExecutableNameImpl(char *p, char *e) {
|
|||
if (IsWindows()) {
|
||||
n = GetModuleFileName(0, u.path16, ARRAYLEN(u.path16));
|
||||
for (i = 0; i < n; ++i) {
|
||||
// turn c:\foo\bar into c:/foo/bar
|
||||
if (u.path16[i] == '\\') {
|
||||
u.path16[i] = '/';
|
||||
}
|
||||
}
|
||||
if (isalpha(u.path16[0]) && u.path16[1] == ':' && u.path16[2] == '/') {
|
||||
p[0] = '/';
|
||||
p[1] = '/';
|
||||
p[2] = '?';
|
||||
p[3] = '/';
|
||||
p += 4;
|
||||
if (IsAlpha(u.path16[0]) && u.path16[1] == ':' && u.path16[2] == '/') {
|
||||
// turn c:/... into /c/...
|
||||
u.path16[1] = u.path16[0];
|
||||
u.path16[0] = '/';
|
||||
u.path16[2] = '/';
|
||||
}
|
||||
tprecode16to8(p, e - p, u.path16);
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue