CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
145 lines
4.7 KiB
ArmAsm
145 lines
4.7 KiB
ArmAsm
# REQUIRES: x86
|
|
|
|
# RUN: rm -rf %t; split-file %s %t
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/main.s -o %t/main.o
|
|
|
|
## Check that -non_global_symbols_no_strip_list and -non_global_symbols_strip_list
|
|
## can't be used at the same time.
|
|
# RUN: not %lld %t/main.o -o /dev/null \
|
|
# RUN: -non_global_symbols_no_strip_list %t/foo.txt \
|
|
# RUN: -non_global_symbols_strip_list %t/foo.txt 2>&1 | \
|
|
# RUN: FileCheck --check-prefix=CONFLICT %s
|
|
|
|
# CONFLICT: error: cannot use both -non_global_symbols_no_strip_list and -non_global_symbols_strip_list
|
|
|
|
## Check that -x causes none of the local symbols to be emitted.
|
|
# RUN: %lld %t/main.o -x -o %t/NO-LOCAL.out
|
|
# RUN: llvm-nm %t/NO-LOCAL.out | FileCheck --check-prefix NO-LOCAL %s
|
|
|
|
# NO-LOCAL-NOT: t _foo
|
|
# NO-LOCAL-NOT: t _bar
|
|
# NO-LOCAL-NOT: t _baz
|
|
# NO-LOCAL: T _main
|
|
|
|
## Check that when using -x with -non_global_symbols_no_strip_list, whichever appears
|
|
## last in the command line arg list will take precedence.
|
|
# RUN: %lld %t/main.o -x -non_global_symbols_no_strip_list %t/foo.txt -o %t/x_then_no_strip.out
|
|
# RUN: llvm-nm %t/x_then_no_strip.out | FileCheck --check-prefix X-NO-STRIP %s
|
|
|
|
# RUN: %lld %t/main.o -non_global_symbols_no_strip_list %t/foo.txt -x -o %t/no_strip_then_x.out
|
|
# RUN: llvm-nm %t/no_strip_then_x.out | FileCheck --check-prefix NO-LOCAL %s
|
|
|
|
# X-NO-STRIP-NOT: t _bar
|
|
# X-NO-STRIP-DAG: t _foo
|
|
# X-NO-STRIP-DAG: T _main
|
|
|
|
## Check that -non_global_symbols_no_strip_list can be specified more than once
|
|
## (The final no-strip list is the union of all these)
|
|
# RUN: %lld %t/main.o -o %t/no_strip_multi.out \
|
|
# RUN: -non_global_symbols_no_strip_list %t/foo.txt \
|
|
# RUN: -non_global_symbols_no_strip_list %t/bar.txt
|
|
# RUN: llvm-nm %t/no_strip_multi.out | FileCheck --check-prefix NO-STRIP-MULTI %s
|
|
|
|
# NO-STRIP-MULTI-NOT: t _baz
|
|
# NO-STRIP-MULTI-DAG: t _foo
|
|
# NO-STRIP-MULTI-DAG: t _bar
|
|
# NO-STRIP-MULTI-DAG: T _main
|
|
|
|
## Check that when using -x with -non_global_symbols_strip_list, whichever appears
|
|
## last in the command line arg list will take precedence.
|
|
# RUN: %lld %t/main.o -x -non_global_symbols_strip_list %t/foo.txt -o %t/x_then_strip.out
|
|
# RUN: llvm-nm %t/x_then_strip.out | FileCheck --check-prefix X-STRIP %s
|
|
|
|
# RUN: %lld %t/main.o -non_global_symbols_strip_list %t/foo.txt -x -o %t/strip_then_x.out
|
|
# RUN: llvm-nm %t/no_strip_then_x.out | FileCheck --check-prefix NO-LOCAL %s
|
|
|
|
# X-STRIP-NOT: t _foo
|
|
# X-STRIP-DAG: t _bar
|
|
# X-STRIP-DAG: t _baz
|
|
# X-STRIP-DAG: T _main
|
|
|
|
## Check that -non_global_symbols_strip_list can be specified more than once
|
|
## (The final strip list is the union of all these)
|
|
# RUN: %lld %t/main.o -o %t/strip_multi.out \
|
|
# RUN: -non_global_symbols_strip_list %t/foo.txt \
|
|
# RUN: -non_global_symbols_strip_list %t/bar.txt
|
|
# RUN: llvm-nm %t/strip_multi.out | FileCheck --check-prefix STRIP-MULTI %s
|
|
|
|
# STRIP-MULTI-NOT: t _foo
|
|
# STRIP-MULTI-NOT: t _bar
|
|
# STRIP-MULTI-DAG: t _baz
|
|
# STRIP-MULTI-DAG: T _main
|
|
|
|
## Test interactions with exported_symbol.
|
|
# RUN: %lld %t/main.o -o %t/strip_all_export_one.out \
|
|
# RUN: -x -exported_symbol _foo \
|
|
# RUN: -undefined dynamic_lookup
|
|
# RUN: llvm-nm %t/strip_all_export_one.out | FileCheck --check-prefix STRIP-EXP %s
|
|
|
|
# STRIP-EXP: U _foo
|
|
# STRIP-EXP: U dyld_stub_binder
|
|
# STRIP-EXP-EMPTY:
|
|
|
|
## Test interactions of -x and -non_global_symbols_strip_list with unexported_symbol.
|
|
# RUN: %lld %t/main.o -o %t/strip_x_unexport_one.out \
|
|
# RUN: -x -unexported_symbol _globby \
|
|
# RUN: -undefined dynamic_lookup
|
|
|
|
# RUN: %lld %t/main.o -o %t/strip_all_unexport_one.out \
|
|
# RUN: -non_global_symbols_strip_list %t/globby.txt \
|
|
# RUN: -non_global_symbols_strip_list %t/foo.txt \
|
|
# RUN: -non_global_symbols_strip_list %t/bar.txt \
|
|
# RUN: -unexported_symbol _globby \
|
|
# RUN: -undefined dynamic_lookup
|
|
|
|
# RUN: llvm-nm %t/strip_x_unexport_one.out | FileCheck --check-prefix STRIP-UNEXP %s
|
|
# RUN: llvm-nm %t/strip_all_unexport_one.out | FileCheck --check-prefix STRIP-UNEXP %s
|
|
|
|
## -unexported_symbol made _globby a local, therefore it should be stripped by -x too
|
|
# STRIP-UNEXP: T __mh_execute_header
|
|
# STRIP-UNEXP-DAG: T _main
|
|
# STRIP-UNEXP-DAG: U dyld_stub_binder
|
|
# STRIP-UNEXP-EMPTY:
|
|
|
|
## Test interactions of -non_global_symbols_strip_list and unexported_symbol.
|
|
# RUN: %lld %t/main.o -undefined dynamic_lookup -o %t/no_strip_unexport.out \
|
|
# RUN: -non_global_symbols_no_strip_list %t/globby.txt \
|
|
# RUN: -unexported_symbol _globby
|
|
|
|
# RUN: llvm-nm %t/no_strip_unexport.out | FileCheck --check-prefix NOSTRIP-UNEXP %s
|
|
|
|
# NOSTRIP-UNEXP: T __mh_execute_header
|
|
# NOSTRIP-UNEXP-DAG: T _main
|
|
# NOSTRIP-UNEXP-DAG: t _globby
|
|
# NOSTRIP-UNEXP-DAG: U dyld_stub_binder
|
|
# NOSTRIP-UNEXP-EMPTY:
|
|
|
|
#--- foo.txt
|
|
_foo
|
|
|
|
#--- bar.txt
|
|
_bar
|
|
|
|
#--- globby.txt
|
|
_globby
|
|
|
|
#--- main.s
|
|
.globl _main
|
|
.globl _globby
|
|
|
|
_foo:
|
|
ret
|
|
|
|
_bar:
|
|
ret
|
|
|
|
_baz:
|
|
ret
|
|
|
|
_main:
|
|
callq _foo
|
|
ret
|
|
|
|
_globby:
|
|
ret
|