New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 789513 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

webrtc-audio-processing package build fail

Project Member Reported by hychao@chromium.org, Nov 29 2017

Issue description

CL https://chromium-review.googlesource.com/499813 adds webrtc-audio-processing package. Which can be built and integrate with CRAS back in June.
I tried to continue the work this week and found emerge fail with below error when executing 'emerge-squawks webrtc-audio-processing'

libtool: link: x86_64-cros-linux-gnu-clang++  -fPIC -DPIC -shared
-nostdlib /build/cave/usr/lib/../lib64/crti.o
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/crtbeginS.o
aec/.libs/libwebrtc_audio_processing_la-aec_core.o
aec/.libs/libwebrtc_audio_processing_la-aec_rdft.o
aec/.libs/libwebrtc_audio_processing_la-aec_resampler.o
aec/.libs/libwebrtc_audio_processing_la-echo_cancellation.o
aecm/.libs/libwebrtc_audio_processing_la-echo_control_mobile.o
aecm/.libs/libwebrtc_audio_processing_la-aecm_core.o
aecm/.libs/libwebrtc_audio_processing_la-aecm_core_c.o
agc/legacy/.libs/libwebrtc_audio_processing_la-analog_agc.o
agc/legacy/.libs/libwebrtc_audio_processing_la-digital_agc.o
agc/.libs/libwebrtc_audio_processing_la-agc.o
agc/.libs/libwebrtc_audio_processing_la-agc_manager_direct.o
agc/.libs/libwebrtc_audio_processing_la-histogram.o
agc/.libs/libwebrtc_audio_processing_la-utility.o
beamformer/.libs/libwebrtc_audio_processing_la-array_util.o
beamformer/.libs/libwebrtc_audio_processing_la-covariance_matrix_generator.o
beamformer/.libs/libwebrtc_audio_processing_la-nonlinear_beamformer.o
intelligibility/.libs/libwebrtc_audio_processing_la-intelligibility_enhancer.o
intelligibility/.libs/libwebrtc_audio_processing_la-intelligibility_utils.o
logging/.libs/libwebrtc_audio_processing_la-aec_logging_file_handling.o
transient/.libs/libwebrtc_audio_processing_la-click_annotate.o
transient/.libs/libwebrtc_audio_processing_la-file_utils.o
transient/.libs/libwebrtc_audio_processing_la-moving_moments.o
transient/.libs/libwebrtc_audio_processing_la-transient_detector.o
transient/.libs/libwebrtc_audio_processing_la-transient_suppressor.o
transient/.libs/libwebrtc_audio_processing_la-wpd_node.o
transient/.libs/libwebrtc_audio_processing_la-wpd_tree.o
utility/.libs/libwebrtc_audio_processing_la-delay_estimator.o
utility/.libs/libwebrtc_audio_processing_la-delay_estimator_wrapper.o
vad/.libs/libwebrtc_audio_processing_la-gmm.o
vad/.libs/libwebrtc_audio_processing_la-pitch_based_vad.o
vad/.libs/libwebrtc_audio_processing_la-pitch_internal.o
vad/.libs/libwebrtc_audio_processing_la-pole_zero_filter.o
vad/.libs/libwebrtc_audio_processing_la-standalone_vad.o
vad/.libs/libwebrtc_audio_processing_la-vad_audio_proc.o
vad/.libs/libwebrtc_audio_processing_la-vad_circular_buffer.o
vad/.libs/libwebrtc_audio_processing_la-voice_activity_detector.o
.libs/libwebrtc_audio_processing_la-audio_buffer.o
.libs/libwebrtc_audio_processing_la-audio_processing_impl.o
.libs/libwebrtc_audio_processing_la-echo_cancellation_impl.o
.libs/libwebrtc_audio_processing_la-echo_control_mobile_impl.o
.libs/libwebrtc_audio_processing_la-gain_control_impl.o
.libs/libwebrtc_audio_processing_la-high_pass_filter_impl.o
.libs/libwebrtc_audio_processing_la-level_estimator_impl.o
.libs/libwebrtc_audio_processing_la-noise_suppression_impl.o
.libs/libwebrtc_audio_processing_la-rms_level.o
.libs/libwebrtc_audio_processing_la-splitting_filter.o
.libs/libwebrtc_audio_processing_la-processing_component.o
.libs/libwebrtc_audio_processing_la-three_band_filter_bank.o
.libs/libwebrtc_audio_processing_la-typing_detection.o
.libs/libwebrtc_audio_processing_la-voice_detection_impl.o
ns/.libs/libwebrtc_audio_processing_la-noise_suppression.o
ns/.libs/libwebrtc_audio_processing_la-ns_core.o  -Wl,--whole-archive
../../../webrtc/.libs/libwebrtc.a ../../../webrtc/base/.libs/libbase.a
../../../webrtc/system_wrappers/.libs/libsystem_wrappers.a
../../../webrtc/common_audio/.libs/libcommon_audio.a
../../../webrtc/modules/audio_coding/.libs/libaudio_coding.a
./.libs/libwebrtc_audio_processing_privatearch.a
-Wl,--no-whole-archive  -lpthread
-L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x
-L/build/cave/lib/../lib64 -L/build/cave/usr/lib/../lib64
-L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/../../../../x86_64-pc-linux-gnu/lib
-L/build/cave/lib -L/build/cave/usr/lib
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.x/libstdc++.so -lm -lc -lgcc_eh
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/crtendS.o
/build/cave/usr/lib/../lib64/crtn.o  -O2 -O2 -O2 -march=corei7 -g
-Wl,--no-undefined -Wl,-O1 -Wl,-O2 -Wl,--as-needed   -Wl,-soname
-Wl,libwebrtc_audio_processing.so.1 -o
.libs/libwebrtc_audio_processing.so.1.0.0
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1174:
error: undefined reference to '__mulsc3'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1185:
error: undefined reference to '__divsc3'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1174:
error: undefined reference to '__mulsc3'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1185:
error: undefined reference to '__divsc3'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1174:
error: undefined reference to '__mulsc3'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1174:
error: undefined reference to '__mulsc3'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/4.9.x/include/g++-v4/complex:1185:
error: undefined reference to '__divsc3'
 

Comment 1 by vapier@chromium.org, Nov 29 2017

that link is missing -lgcc_s and -lgcc and any llvm rt libs all of which provide those symbols

can you attach the full build log ?  something is wonky.
Components: OS>Kernel>Audio
Labels: OS-Chrome
Owner: hychao@chromium.org
Status: Assigned (was: Untriaged)
Mike. I sent the full logs yesterday. Email subject was "error: undefined reference to '__mulsc3'". Can you check your inbox?

Comment 4 by vapier@chromium.org, Nov 30 2017

can you attach them here so we have a single source of truth and so any one else we loop in will have access ?

w/out looking at the source, i wonder if running eautoreconf in the ebuild's src_prepare would help.
Attached.
media-libs_webrtc-audio-processing-0.3-r1_20171129-075910.log
608 KB View Download
I tried adding eautoreconf in src_prepare and that doesn't help.

Also when I test emerge this package on Kevin, it shows a few more undefined reference symbols.

webrtc-audio-processing-0.3-r1: ../../../../webrtc-audio-processing-0.3/webrtc/modules/audio_processing/agc/histogram.cc:219: error: undefined reference to '__aeabi_l2d'
webrtc-audio-processing-0.3-r1: ../../../webrtc-audio-processing-0.3/webrtc/system_wrappers/source/event_timer_posix.cc:193: error: undefined reference to '__aeabi_uldivmod'
webrtc-audio-processing-0.3-r1: ../../../../webrtc-audio-processing-0.3/webrtc/modules/audio_processing/aec/aec_core.c:816: error: undefined reference to '__aeabi_ldivmod'


LogDog(chromeos)_ bb_chromiumos.tryserver_paladin_4594_+_ recipes_steps_BuildPackages_0_stdout
1.7 MB Download
Cc: jcliang@chromium.org chihchung@chromium.org kcwu@chromium.org

Comment 8 by hychao@chromium.org, Dec 12 2017

Status: Fixed (was: Assigned)
Thanks vapier@ and jcliang@'s help. Turns out eautoreconf works well after re-setup_board in my chroot.


Status: Archived (was: Fixed)

Sign in to add a comment