userland: --static implies --userland-build-id static

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-02-15 00:00:00 +00:00
parent 62d2152f39
commit 01194dda5c
3 changed files with 17 additions and 17 deletions

View File

@@ -3081,11 +3081,10 @@ You can also try statically linked executables with:
./build-userland \ ./build-userland \
--arch aarch64 \ --arch aarch64 \
--static \ --static \
--userland-build-id static \
; ;
./run \ ./run \
--arch aarch64 \ --arch aarch64 \
--userland-build-id static \ --static \
--userland print_argv \ --userland print_argv \
--userland-args 'asdf "qw er"' \ --userland-args 'asdf "qw er"' \
; ;
@@ -3098,11 +3097,10 @@ Or you can run statically linked built by the host packaged toolchain with:
--arch aarch64 \ --arch aarch64 \
--host \ --host \
--static \ --static \
--userland-build-id host-static \
; ;
./run \ ./run \
--arch aarch64 \ --arch aarch64 \
--userland-build-id host-static \ --static \
--userland print_argv \ --userland print_argv \
--userland-args 'asdf "qw er"' \ --userland-args 'asdf "qw er"' \
; ;
@@ -3173,7 +3171,6 @@ So let's just play with some static ones:
./build-userland \ ./build-userland \
--arch aarch64 \ --arch aarch64 \
--static \ --static \
--userland-build-id static \
; ;
./run \ ./run \
--arch aarch64 \ --arch aarch64 \
@@ -3191,16 +3188,16 @@ Step debug also works:
./run \ ./run \
--arch aarch64 \ --arch aarch64 \
--emulator gem5 \ --emulator gem5 \
--static \
--userland print_argv \ --userland print_argv \
--userland-args 'asdf "qw er"' \ --userland-args 'asdf "qw er"' \
--userland-build-id static \
--wait-gdb \ --wait-gdb \
; ;
./run-gdb \ ./run-gdb \
--arch aarch64 \ --arch aarch64 \
--emulator gem5 \ --emulator gem5 \
--static \
--userland print_argv \ --userland print_argv \
--userland-build-id static \
main \ main \
; ;
.... ....
@@ -3210,7 +3207,7 @@ Step debug also works:
As of gem5 7fa4c946386e7207ad5859e8ade0bbfc14000d91, the crappy `se.py` script does not forward the exit status of syscall emulation mode, you can test it with: As of gem5 7fa4c946386e7207ad5859e8ade0bbfc14000d91, the crappy `se.py` script does not forward the exit status of syscall emulation mode, you can test it with:
.... ....
./run --dry-run --emulator gem5 --userland false --userland-build-id static ./run --dry-run --emulator gem5 --static --userland false
.... ....
Source: link:userland/false[]. Source: link:userland/false[].

View File

@@ -34,14 +34,6 @@ Use the host packaged cross toolchain.
'--make-args', '--make-args',
default='', default='',
) )
self.add_argument(
'--static',
default=False,
help='''\
Build the executables statically. TODO not implemented: Set the build id to 'static'
if one was not given explicitly.
''',
)
self.add_argument( self.add_argument(
'targets', 'targets',
default=[], default=[],

View File

@@ -347,6 +347,14 @@ Machine type:
) )
# Userland. # Userland.
self.add_argument(
'--static',
default=False,
help='''\
Build userland executables statically. Set --userland-build-id to 'static'
if one was not given explicitly.
''',
)
self.add_argument( self.add_argument(
'-u', '--userland', '-u', '--userland',
help='''\ help='''\
@@ -441,7 +449,10 @@ Valid emulators: {}
if env['emulator'] in env['emulator_short_to_long_dict']: if env['emulator'] in env['emulator_short_to_long_dict']:
env['emulator'] = env['emulator_short_to_long_dict'][env['emulator']] env['emulator'] = env['emulator_short_to_long_dict'][env['emulator']]
if not env['_args_given']['userland_build_id']: if not env['_args_given']['userland_build_id']:
env['userland_build_id'] = env['default_build_id'] if env['static']:
env['userland_build_id'] = 'static'
else:
env['userland_build_id'] = env['default_build_id']
if not env['_args_given']['gem5_build_id']: if not env['_args_given']['gem5_build_id']:
if env['_args_given']['gem5_worktree']: if env['_args_given']['gem5_worktree']:
env['gem5_build_id'] = env['gem5_worktree'] env['gem5_build_id'] = env['gem5_worktree']