<div dir="ltr">PS - I was able to compile the .S file converted to GNU syntax using<div><br></div><div>arm-linux-gnueabi-as<br></div><div><br></div><div>So I guess it's for arm v7 only?</div><div><br></div><div>But the celt_pitch_xcorr_neon symbol is undefined also when building for arm64 v8a  (with fixed point math), how to resolve?</div><div><br></div><div>-- K</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 25, 2023 at 7:22 PM Kostya Vasilyev <<a href="mailto:kvasilye@justin.tv">kvasilye@justin.tv</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I'm trying to compile Opus for Android arm64 (and ultimately other arch's) using the CMakeLists.txt file available in the repository.</div><div><br></div><div>My cmake commands are like this:</div><div><br></div><div><a href="https://gist.github.com/kvasilye/9004332a5f3f90f2a6e868090d004d7b" target="_blank">https://gist.github.com/kvasilye/9004332a5f3f90f2a6e868090d004d7b</a><br></div><div><br></div><div>This produces an error:</div><div><br></div><div>ld: error: undefined symbol: celt_pitch_xcorr_neon<br>>>> referenced by pitch.c:347 (/home/<a href="http://ANT.AMAZON.COM/kvasilye/opus/celt/pitch.c:347" target="_blank">ANT.AMAZON.COM/kvasilye/opus/celt/pitch.c:347</a>)<br>>>>               CMakeFiles/opus.dir/celt/pitch.c.o:(pitch_search)<br>>>> referenced by celt_lpc.c:314 (/home/<a href="http://ANT.AMAZON.COM/kvasilye/opus/celt/celt_lpc.c:314" target="_blank">ANT.AMAZON.COM/kvasilye/opus/celt/celt_lpc.c:314</a>)<br>>>>               CMakeFiles/opus.dir/celt/celt_lpc.c.o:(_celt_autocorr)<br>>>> referenced by burg_modified_FIX.c:98 (/home/<a href="http://ANT.AMAZON.COM/kvasilye/opus/silk/fixed/burg_modified_FIX.c:98" target="_blank">ANT.AMAZON.COM/kvasilye/opus/silk/fixed/burg_modified_FIX.c:98</a>)<br>>>>               CMakeFiles/opus.dir/silk/fixed/burg_modified_FIX.c.o:(silk_burg_modified_c)<br>>>> referenced 2 more times<br></div><div><br></div><div>Next, I tried to write my own CMakeLists.txt and got stuck too - the undefined symbol above is defined in celt_pitch_xcorr_arm.s which as I understand uses ARM assembler syntax.</div><div><br></div><div>I converted the file to GNU syntax using the provided Perl script.</div><div><br></div><div>Trying to compile the output with aarch64-linux-gnu-as gives a whole bunch of errors like:</div><div><br></div><div>third_party/cmake-build-opus-android-arm64-v8a-Debug/celt_pitch_xcorr_arm_gnu.S: Assembler messages:<br>third_party/cmake-build-opus-android-arm64-v8a-Debug/celt_pitch_xcorr_arm_gnu.S:1: Error: unknown pseudo-op: `.syntax'<br>third_party/cmake-build-opus-android-arm64-v8a-Debug/celt_pitch_xcorr_arm_gnu.S:2: Error: junk at end of line, first unrecognized character is `@'<br>third_party/cmake-build-opus-android-arm64-v8a-Debug/celt_pitch_xcorr_arm_gnu.S:3: Error: junk at end of line, first unrecognized character is `@'<br>third_party/cmake-build-opus-android-arm64-v8a-Debug/celt_pitch_xcorr_arm_gnu.S:4: Error: junk at end of line, first unrecognized character is `@'<br>third_party/cmake-build-opus-android-arm64-v8a-Debug/celt_pitch_xcorr_arm_gnu.S:5: Error: junk at end of line, first unrecognized character is `@'<br></div><div><br></div><div>So it looks unhappy with the syntax.</div><div><br></div><div>Questions:</div><div><br></div><div>1 - What is the right way to compile Opus for Android on arm64-v8a?</div><div><br></div><div>2 - If I wanted to compile the asm file, how can I do that?</div><div><br></div><div>3 - Is this asm file for both armeabi-v7a and arm64-v8a or just for armeabi-v7a? The symbol is required for arm64-v8a, but there is a directive ".arch armv7-a" at the top of the file so I'm confused.</div><div><br></div><div>I really don't know anything about arm assembly to figure these out on my own, any help would be appreciated!</div><div><br></div><div>Thanks,</div><div>-- K</div><div><br></div></div>
</blockquote></div>