Merge pull request #1280 from juj/abs_path_check
Improve absolute path warning detection to work on Windows, and make the...
This commit is contained in:
Коммит
02382e49cb
7
emcc
7
emcc
|
@ -855,9 +855,10 @@ try:
|
|||
memory_init_file = int(newargs[i+1])
|
||||
newargs[i] = ''
|
||||
newargs[i+1] = ''
|
||||
elif newargs[i].startswith(('-I/', '-L/')):
|
||||
if not absolute_warning_shown:
|
||||
logging.warning ('-I or -L of an absolute path encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)') # Of course an absolute path to a non-system-specific library or header is fine, and you can ignore this warning. The danger are system headers that are e.g. x86 specific and nonportable. The emscripten bundled headers are modified to be portable, local system ones are generally not
|
||||
elif newargs[i].startswith(('-I', '-L')):
|
||||
path_name = newargs[i][2:]
|
||||
if not absolute_warning_shown and os.path.isabs(path_name):
|
||||
logging.warning ('-I or -L of an absolute path "' + newargs[i] + '" encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)') # Of course an absolute path to a non-system-specific library or header is fine, and you can ignore this warning. The danger are system headers that are e.g. x86 specific and nonportable. The emscripten bundled headers are modified to be portable, local system ones are generally not
|
||||
absolute_warning_shown = True
|
||||
newargs = [ arg for arg in newargs if arg is not '' ]
|
||||
|
||||
|
|
|
@ -10530,7 +10530,7 @@ f.close()
|
|||
(['-Lsubdir/something'], False),
|
||||
([], False)]:
|
||||
err = Popen([PYTHON, EMCC, 'main.c'] + args, stderr=PIPE).communicate()[1]
|
||||
assert ('-I or -L of an absolute path encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)' in err) == expected, err
|
||||
assert ('encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)' in err) == expected, err
|
||||
|
||||
def test_local_link(self):
|
||||
# Linking a local library directly, like /usr/lib/libsomething.so, cannot work of course since it
|
||||
|
|
Загрузка…
Ссылка в новой задаче