Skip to content

Commit 3f1d495

Browse files
committed
fix libflatccrt
1 parent fd87e98 commit 3f1d495

File tree

7 files changed

+21
-41
lines changed

7 files changed

+21
-41
lines changed

.ci/scripts/build-qnn-sdk.sh

100644100755
Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,12 @@ set -o xtrace
1111

1212
build_qnn_backend() {
1313
echo "Start building qnn backend."
14-
export ANDROID_NDK_ROOT=/opt/ndk
15-
export QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029
14+
export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/ndk}
15+
export QNN_SDK_ROOT=${QNN_SDK_ROOT:-/tmp/qnn/2.28.0.241029}
1616
export EXECUTORCH_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)"
1717

18-
# Workaround to avoid issues around missing flatccrt library (depending on the
19-
# number of jobs used), see issue #7300:
20-
# Build twice (second time with `--no_clean`) to make sure libflatccrt.a is
21-
# available.
22-
# TODO: Remove this workaround once the underlying issue is fixed.
23-
bash backends/qualcomm/scripts/build.sh --skip_aarch64 --job_number 2 --release || \
24-
bash backends/qualcomm/scripts/build.sh --skip_aarch64 --job_number 2 --release --no_clean
18+
parallelism=$(( $(nproc) - 1 ))
19+
bash backends/qualcomm/scripts/build.sh --skip_aarch64 --job_number ${parallelism} --release
2520
}
2621

2722
set_up_aot() {

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,7 @@ if(EXECUTORCH_BUILD_PYBIND)
582582
${TORCH_PYTHON_LIBRARY}
583583
bundled_program
584584
etdump
585+
flatccrt
585586
executorch
586587
extension_data_loader
587588
util

examples/apple/mps/CMakeLists.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,6 @@ if(NOT CMAKE_TOOLCHAIN_FILE MATCHES ".*(iOS|ios\.toolchain)\.cmake$")
9797
list(TRANSFORM _mps_executor_runner__srcs PREPEND "${EXECUTORCH_ROOT}/")
9898
add_executable(mps_executor_runner ${_mps_executor_runner__srcs})
9999

100-
if(CMAKE_BUILD_TYPE MATCHES "Debug")
101-
set(FLATCC_LIB flatccrt_d)
102-
else()
103-
set(FLATCC_LIB flatccrt)
104-
endif()
105-
106100
if(CMAKE_BUILD_TYPE MATCHES "Debug")
107101
target_link_options(mps_executor_runner PUBLIC -fsanitize=undefined)
108102
endif()
@@ -113,7 +107,7 @@ if(NOT CMAKE_TOOLCHAIN_FILE MATCHES ".*(iOS|ios\.toolchain)\.cmake$")
113107
executorch
114108
gflags
115109
etdump
116-
${FLATCC_LIB}
110+
flatccrt
117111
mpsdelegate
118112
mps_portable_ops_lib
119113
${mps_executor_runner_libs}

examples/arm/executor_runner/CMakeLists.txt

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -583,23 +583,7 @@ if(EXECUTORCH_ENABLE_EVENT_TRACER)
583583
"${ET_BUILD_DIR_PATH}/lib/libetdump.a"
584584
)
585585

586-
if(CMAKE_BUILD_TYPE MATCHES "Debug")
587-
set(FLATCCRT_LIB flatccrt_d)
588-
else()
589-
set(FLATCCRT_LIB flatccrt)
590-
endif()
591-
592-
add_library(${FLATCCRT_LIB} STATIC IMPORTED)
593-
set_property(
594-
TARGET ${FLATCCRT_LIB}
595-
PROPERTY IMPORTED_LOCATION
596-
"${ET_BUILD_DIR_PATH}/lib/lib${FLATCCRT_LIB}.a"
597-
)
598-
599-
list(APPEND arm_executor_runner_link
600-
etdump
601-
${FLATCCRT_LIB}
602-
)
586+
list(APPEND arm_executor_runner_link etdump flatccrt)
603587
endif()
604588

605589
if(ET_BUNDLE_IO)

examples/qualcomm/executor_runner/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ target_include_directories(
2020
)
2121
target_link_libraries(
2222
qnn_executor_runner qnn_executorch_backend full_portable_ops_lib etdump
23-
${FLATCCRT_LIB} gflags
23+
flatccrt gflags
2424
)
2525
set_target_properties(
2626
qnn_executor_runner PROPERTIES LINK_FLAGS "-Wl,-rpath='$ORIGIN'"

third-party/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ if(WIN32)
7676
else()
7777
set_target_properties(flatcc_cli PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/bin/flatcc)
7878
endif()
79+
# Unfortunately flatcc writes libs directly in to the source tree:
80+
# https://github.com/dvidelabs/flatcc/blob/896db54787e8b730a6be482c69324751f3f5f117/CMakeLists.txt#L168
81+
# So delete the artifacts.
82+
file(REMOVE_RECURSE ${PROJECT_SOURCE_DIR}/third-party/flatcc/lib)
83+
file(REMOVE_RECURSE ${PROJECT_SOURCE_DIR}/third-party/flatcc/bin)
7984

8085
set(FLATCC_RTONLY ON CACHE BOOL "")
8186
set(FLATCC_TEST OFF CACHE BOOL "")
@@ -89,6 +94,9 @@ add_subdirectory(flatcc)
8994
#
9095
# Learn more: https://github.com/pytorch/executorch/pull/2467
9196
set_property(TARGET flatccrt PROPERTY POSITION_INDEPENDENT_CODE ON)
97+
# flatcc appends a "_d" suffix (flatccrt_d) to debug builds. To simplify our
98+
# reference to the lib, remove the suffix.
99+
set_property(TARGET flatccrt PROPERTY DEBUG_POSTFIX "")
92100
install(
93101
TARGETS flatccrt
94102
DESTINATION ${CMAKE_BINARY_DIR}/lib

tools/cmake/executorch-config.cmake

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,12 @@ set(EXECUTORCH_FOUND ON)
5656

5757
target_link_libraries(executorch INTERFACE executorch_core)
5858

59-
if(CMAKE_BUILD_TYPE MATCHES "Debug")
60-
set(FLATCCRT_LIB flatccrt_d)
61-
else()
62-
set(FLATCCRT_LIB flatccrt)
63-
endif()
64-
6559
set(lib_list
60+
flatccrt
6661
etdump
6762
bundled_program
6863
extension_data_loader
6964
extension_flat_tensor
70-
${FLATCCRT_LIB}
7165
coreml_util
7266
coreml_inmemoryfs
7367
coremldelegate
@@ -154,6 +148,10 @@ if(TARGET coremldelegate)
154148
)
155149
endif()
156150

151+
if(TARGET etdump)
152+
set_target_properties(etdump PROPERTIES INTERFACE_LINK_LIBRARIES "flatccrt;executorch")
153+
endif()
154+
157155
if(TARGET optimized_native_cpu_ops_lib)
158156
if(TARGET optimized_portable_kernels)
159157
set(_maybe_optimized_portable_kernels_lib optimized_portable_kernels)

0 commit comments

Comments
 (0)