parent
f116b0039d
commit
9910b2dbd0
@ -0,0 +1,78 @@
|
||||
---
|
||||
title: "Getting Pacaur Working on a Raspberry Pi 4 with Manjaro ARM or Arch Linux"
|
||||
layout: post
|
||||
---
|
||||
|
||||
I recently installed Manjaro ARM (based on Arch Linux ARM) on a Raspberry Pi 4.
|
||||
I used some standard commands to start to add the `pacaur` package so I can easily retrieve [AUR packages](https://wiki.archlinux.org/index.php/Arch_User_Repository) without needing to do it manually.
|
||||
Unfortunately, there is a small problem with compiling this on ARM.
|
||||
|
||||
## always_inline
|
||||
|
||||
To setup the install for `pacaur`, I first needed to download [auracle-git](https://aur.archlinux.org/packages/auracle-git) AUR package manually.
|
||||
I ran into an error when compiling this package.
|
||||
|
||||
But first, my setup:
|
||||
<pre class="terminal">
|
||||
$ git clone https://aur.archlinux.org/auracle-git
|
||||
$ cd auracle-git
|
||||
$ makepkg -sri
|
||||
</pre>
|
||||
|
||||
Around half way through compiling this project, I got this cryptic message telling me there was a "target specific option mismatch"...Whatever that means.
|
||||
The full error is below, hopefully that helps my chances on the search engines.
|
||||
|
||||
<pre class="terminal">
|
||||
In file included from ../subprojects/abseil-cpp-20200225.2/absl/random/internal/randen_hwaes.cc:225:
|
||||
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.3.0/include/arm_neon.h: In function 'Vector128 {anonymous}::AesRound(const Vector128&, const Vector128&)':
|
||||
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.3.0/include/arm_neon.h:12452:1: error: inlining failed in call to always_inline 'uint8x16_t vaesmcq_u8(uint8x16_t)': target specific option mismatch
|
||||
12452 | vaesmcq_u8 (uint8x16_t data)
|
||||
</pre>
|
||||
|
||||
Luckily, there is a very easy fix for this.
|
||||
The user redfish [helpfully pointed out](https://aur.archlinux.org/packages/auracle-git#comment-762117)
|
||||
on the `auracle-git` package page that you need to add a special make option to your `/etc/make.conf` file to make this work.
|
||||
|
||||
His solution, as commented is like so:
|
||||
|
||||
> If you get this error when building for ARM aarch64:
|
||||
>
|
||||
> (insert error message from before)
|
||||
>
|
||||
> Then check that in /etc/makepkg.conf CFLAGS and CXXFLAGS have the +crypto suffix in -march flag, like -march=armv8-a+crypto (the base identifier may very depending on your hardware)
|
||||
|
||||
Basically, there is a file on Linux: `/etc/makepkg.conf` which tells your computer how to compile *all* programs on the system.
|
||||
By default the Manjaro ARM (RPi4) edition has the following relevant lines in `makepkg.conf`.
|
||||
|
||||
<pre class="file">
|
||||
CFLAGS="-march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt"
|
||||
CXXFLAGS="-march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt"
|
||||
</pre>
|
||||
|
||||
What Mr. redfish is telling us is that we must add '+crypto' to the end of the -march compiler flag so that our compiler will know how to inline that pesky vaesmcq_u8 function.
|
||||
|
||||
So in the end, your `makepkg.conf`'s relevant lines will look like so:
|
||||
<pre class="file">
|
||||
CFLAGS="-march=armv8-a+crypto -O2 -pipe -fstack-protector-strong -fno-plt"
|
||||
CXXFLAGS="-march=armv8-a+crypto -O2 -pipe -fstack-protector-strong -fno-plt"
|
||||
</pre>
|
||||
|
||||
## Why?
|
||||
|
||||
Redfish continues:
|
||||
|
||||
> Build of abseil-cpp package works because it uses CMake which adds the correct -march flag regardless of makepkg.conf, whereas when abseil-cpp is build as a subproject within this package, it uses meson, which does not add the flag and thus fails with the above error.
|
||||
|
||||
In other words, one of the dependencies pulled in with auracle is not compiling without this special compiler flag enabled.
|
||||
|
||||
|
||||
## Conclusion
|
||||
|
||||
Thanks to redfish for posting this solution to the forums!
|
||||
Would've been quite the rabbit hole for me to figure out how to do that.
|
||||
In fact, it is very likely I would have never figured that one out.
|
||||
|
||||
After this issue is resolved, the installation of `pacaur` goes as expected. Nice and easy!
|
||||
Pacuar will compile on any architecture so it's smooth sailing from here.
|
||||
|
||||
Happy hacking!
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>/2020/01/22/padding-and-margin.html</loc> <lastmod>2020-01-22T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/01/26/rsa1.html</loc> <lastmod>2020-01-26T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/02/19/rsa2.html</loc> <lastmod>2020-02-19T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/04/02/rsa3.html</loc> <lastmod>2020-04-02T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/06/rsa4.html</loc> <lastmod>2020-04-06T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/12/nas1.html</loc> <lastmod>2020-04-12T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/21/rfi.html</loc> <lastmod>2020-04-21T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/25/xss.html</loc> <lastmod>2020-04-25T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/05/01/nginx-socket-io-projects.html</loc> <lastmod>2020-05-01T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/05/19/clue-announcement.html</loc> <lastmod>2020-05-19T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/06/04/site-update.html</loc> <lastmod>2020-06-04T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/06/25/tmux-minecraft.html</loc> <lastmod>2020-06-25T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/07/12/independence.html</loc> <lastmod>2020-07-12T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/07/19/multicraft-php-gentoo.html</loc> <lastmod>2020-07-19T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/07/30/canadian-parliament.html</loc> <lastmod>2020-07-30T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/08/15/openbsd1.html</loc> <lastmod>2020-08-15T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/08/18/django-deployment.html</loc> <lastmod>2020-08-18T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/09/09/lamegames.html</loc> <lastmod>2020-09-09T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/09/12/minesweeper.html</loc> <lastmod>2020-09-12T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/10/26/curiosity.html</loc> <lastmod>2020-10-26T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/11/15/nas2.html</loc> <lastmod>2020-11-15T00:00:00-07:00</lastmod> </url> <url> <loc>/2020-04-27-quiz-your-friends-xss.html</loc> </url> <url> <loc>/2020-11-27-orca-raspberry-pi-aarch64.html</loc> </url> <url> <loc>/blog/</loc> </url> <url> <loc>/tests/chess/</loc> </url> <url> <loc>/</loc> </url> <url> <loc>/tutoring/</loc> </url> <url> <loc>/cover-letters/bloombase/</loc> </url> <url> <loc>/resume/</loc> </url> <url> <loc>/links/</loc> </url> <url> <loc>/cover-letter-vcc/</loc> </url> <url> <loc>/contact/</loc> </url> <url> <loc>/about/</loc> </url> <url> <loc>/scholarships/2020/cnib/</loc> </url> <url> <loc>/test.html</loc> </url> <url> <loc>/test2.html</loc> </url> </urlset>
|
||||
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>/2020/01/22/padding-and-margin.html</loc> <lastmod>2020-01-22T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/01/26/rsa1.html</loc> <lastmod>2020-01-26T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/02/19/rsa2.html</loc> <lastmod>2020-02-19T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/04/02/rsa3.html</loc> <lastmod>2020-04-02T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/06/rsa4.html</loc> <lastmod>2020-04-06T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/12/nas1.html</loc> <lastmod>2020-04-12T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/21/rfi.html</loc> <lastmod>2020-04-21T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/04/25/xss.html</loc> <lastmod>2020-04-25T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/05/01/nginx-socket-io-projects.html</loc> <lastmod>2020-05-01T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/05/19/clue-announcement.html</loc> <lastmod>2020-05-19T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/06/04/site-update.html</loc> <lastmod>2020-06-04T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/06/25/tmux-minecraft.html</loc> <lastmod>2020-06-25T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/07/12/independence.html</loc> <lastmod>2020-07-12T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/07/19/multicraft-php-gentoo.html</loc> <lastmod>2020-07-19T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/07/30/canadian-parliament.html</loc> <lastmod>2020-07-30T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/08/15/openbsd1.html</loc> <lastmod>2020-08-15T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/08/18/django-deployment.html</loc> <lastmod>2020-08-18T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/09/09/lamegames.html</loc> <lastmod>2020-09-09T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/09/12/minesweeper.html</loc> <lastmod>2020-09-12T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/10/26/curiosity.html</loc> <lastmod>2020-10-26T00:00:00-06:00</lastmod> </url> <url> <loc>/2020/11/15/nas2.html</loc> <lastmod>2020-11-15T00:00:00-07:00</lastmod> </url> <url> <loc>/2020/12/01/pacaur-rpi.html</loc> <lastmod>2020-12-01T00:00:00-07:00</lastmod> </url> <url> <loc>/2020-04-27-quiz-your-friends-xss.html</loc> </url> <url> <loc>/2020-11-27-orca-raspberry-pi-aarch64.html</loc> </url> <url> <loc>/blog/</loc> </url> <url> <loc>/tests/chess/</loc> </url> <url> <loc>/</loc> </url> <url> <loc>/tutoring/</loc> </url> <url> <loc>/cover-letters/bloombase/</loc> </url> <url> <loc>/resume/</loc> </url> <url> <loc>/links/</loc> </url> <url> <loc>/cover-letter-vcc/</loc> </url> <url> <loc>/contact/</loc> </url> <url> <loc>/about/</loc> </url> <url> <loc>/scholarships/2020/cnib/</loc> </url> <url> <loc>/test.html</loc> </url> <url> <loc>/test2.html</loc> </url> </urlset>
|
Loading…
Reference in new issue