LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM
User Name
Password
Slackware - ARM This forum is for the discussion of Slackware ARM.

Notices


Reply
  Search this Thread
Old 04-13-2021, 06:24 PM   #1
enine
Senior Member
 
Registered: Nov 2003
Distribution: Slackʍɐɹǝ
Posts: 1,486
Blog Entries: 4

Rep: Reputation: 282Reputation: 282Reputation: 282
Slackbuild arm support?


Will arm get a slackbuild site like the x86 Slackware? I've found that many Slackbuilds work fine on arm, while some need minor changes. If we find a slackbuild that can be made to work fine on arm should we notify the maintainer or if there a larger project like the x86-current updates?
 
Old 04-14-2021, 05:14 AM   #2
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,539

Rep: Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309
Quote:
Originally Posted by enine View Post
Will arm get a slackbuild site like the x86 Slackware? I've found that many Slackbuilds work fine on arm, while some need minor changes. If we find a slackbuild that can be made to work fine on arm should we notify the maintainer or if there a larger project like the x86-current updates?
I'm not sure what you refer to about 'x86-current updates', but the best thing to do would be to ask on the SlackBuilds development mailing list if there might be a protocol for tagging particular build scripts as being verified _not_ working on ARM (and/or soon Slackware AArch64) (should no fixes be available).
Given that in most cases I rarely make any ARM or AArch64 changes to the x86 SlackBuilds, I'm going to assert that it may be a similar finding with the scripts at SBo.
 
Old 04-14-2021, 08:19 PM   #3
enine
Senior Member
 
Registered: Nov 2003
Distribution: Slackʍɐɹǝ
Posts: 1,486

Original Poster
Blog Entries: 4

Rep: Reputation: 282Reputation: 282Reputation: 282
Quote:
Originally Posted by drmozes View Post
I'm not sure what you refer to about 'x86-current updates',
This: https://www.linuxquestions.org/quest...ls-4175561999/

Where Ponce has a copy of all of the Slackbuilds and makes updates for any that won't build against -current (for x86 and x86_64) so when -current becomes 15 all the Slackbuilds will be ready. I start with those Slackbuilds since is at -current and then make any small changed needed.

I had one simply say "arm isn't supported", a couple trying to use x64 in the path, and a few that just needed -fPIC passed in because they were written like this:
Code:
if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi
and needed to have an other elif for arm added like this:
Code:
if [ "$ARCH" = "i586" ]; then
  SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
elif [ "$ARCH" = "arm" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS=""
  LIBDIRSUFFIX=""
fi
hmm, now that I think about it what does the libdir for 64 bit arm look like, I haven't installed any yet.

OpenCSG for example fails with
Code:
/usr/bin/ld: settings.o: relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
so I added the above to it. Technically it would work if I added the -fPIC to the else but I was trying to do it proper and define arm as an option.

I'll hunt down the mailing list.

Last edited by enine; 04-14-2021 at 08:31 PM.
 
Old 04-15-2021, 03:18 AM   #4
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,539

Rep: Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309
Quote:
Originally Posted by enine View Post
This: https://www.linuxquestions.org/quest...ls-4175561999/

Where Ponce has a copy of all of the Slackbuilds and makes updates for any that won't build against -current (for x86 and x86_64) so when -current becomes 15 all the Slackbuilds will be ready. I start with those Slackbuilds since is at -current and then make any small changed needed.
That's a task of no insignificant magnitude! Just to give an idea of how long it may take to build the packages: for the recent ARM world build, there were ~930 packages (excluding KDE) building on a quad core Orange Pi Plus2E/4GB RAM using 4 parallel jobs with distcc, and it took about 3 days to build. That's just the wall time on the build host though - that doesn't include the manual effort of any broken builds. If someone wants to take on this job for ARM and/or for AArch64 when I release it to the wild, they can look at the cross compiler toolchain and set it up - it's easy enough to do (Brent Earl is using it to help with AArch64).

For tagging packages that are known unbuildable, perhaps that'd be better marked out on the SBo web site on a per package basis.
However, like most things - it's easy for me to think up ideas but I'm fully aware of the time and effort involved in both getting up and running, and long term maintenance, and encourage people if they are interested, to perhaps try it in private for a few months and later review whether that's something they would like to commit to; otherwise it'll be disrupt the upstream SBo developers and waste the energy of multiple people and have no long term sustainable result.

Building for AArch64 even natively though (at least on the RockPro64) is worlds apart from 32 bit ARMv7 though in terms of build speed, so should no longer preclude people from building most packages from source using SBo scripts.
I am planning on doing a short video tutorial to build packages from SBo on AArch64 at some point.

Code:
elif [ "$ARCH" = "arm" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
[..]
ARM is 32bit so the suffix variable should remain unset/null and generally you do not need -fPIC. I only add it when the compiler suggests it (as your build log does).
AArch64 needs the suffix set to '64', and -fPIC is set within the global CFLAGS settings for all build scripts, with the exception of a handful of packages where it's filtered out within the package's SlackBuild.
As far as I'm concerned, the architecture compiler settings stanza within the linuxdoc-tools package is the correct default set for all officially supported architectures (including AArch64). Note that I don't include -fPIC in there because none of the bundled packages require it, and LDT does not inherit any other settings from the Slackware ARM build environment that override it.


I'll update this doc for Slackware AArch64 before it's released, with the architecture stanza as well.
 
1 members found this post helpful.
Old 04-15-2021, 08:16 AM   #5
enine
Senior Member
 
Registered: Nov 2003
Distribution: Slackʍɐɹǝ
Posts: 1,486

Original Poster
Blog Entries: 4

Rep: Reputation: 282Reputation: 282Reputation: 282
I wasn't implying you should have to build everything yourself. I don't think ponce builds everything, he just coordinates the community reported issues.

Stanza, that's the name I couldn't remember. Off topic, but from the linuxdoc-tools package, is s390 still supported and what will the stanza be for risc-v?
 
Old 04-15-2021, 11:11 AM   #6
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,539

Rep: Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309Reputation: 1309
Quote:
Originally Posted by enine View Post
I wasn't implying you should have to build everything yourself. I don't think ponce builds everything, he just coordinates the community reported issues.
That reduces the scope some what ;-)

Quote:

Stanza, that's the name I couldn't remember. Off topic, but from the linuxdoc-tools package, is s390 still supported and what will the stanza be for risc-v?
Mark Post is still on the Slackware team but S390 is not maintained and I suspect never will be. Risc-v would be -O2.
 
Old 04-15-2021, 12:30 PM   #7
enine
Senior Member
 
Registered: Nov 2003
Distribution: Slackʍɐɹǝ
Posts: 1,486

Original Poster
Blog Entries: 4

Rep: Reputation: 282Reputation: 282Reputation: 282
Dare I suggest replacing s390 with risc-v in the template
 
Old 04-15-2021, 07:13 PM   #8
mralk3
Slackware Contributor
 
Registered: May 2015
Distribution: Slackware
Posts: 1,900

Rep: Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050
I have some experience with building all of SBo. For some time I maitained the documentation for slackonly.com and collaborated with the slackonly.com lead. According to the person building the repository, it took about a week to build x86_64 and a week to build x86. Arm would take multitudes longer, even with a beefy arm device, as MoZes has suggested. This doesn't include rebuilds for security updates. repology.org is your friend in this.

On Aaarch64, I have made some experiments a few weeks back. I was interested in building a large chunk of popular software from SlackBuilds.org (SBo), for Aarch64, to provide for the community. I have several arm64 devices, rpi 3 x2, a rpi4, aside from my rock pro 64. I have an additonal 4 x86_64 set of computers I can use to cross compile. A tool calld slackrepo is the best available software for this task. Slackrepo is what was used for Slack Only when it was still updated.

In addition to slackrepo, I like to tie all of my computing power together with distcc. I think the lead of Slack Only built everything on one Intel Skylake machine with 64GB of RAM. This was a few years ago. With several devices connected over the network, the time could be cut down to less than a week on Aarch64. It is still an immense amount of work with the remaining issue of how the resulting work will be distributed in the end. All the documentation I wrote for Slack Only is somewhat finished and can be found here: https://github.com/panosmdma/SlackOnly-Docs (the ftp/http site overlay) and the SlackBuilds can be found here: https://github.com/panosmdma/SlackOnly-SlackBuilds

I may take up this project for Slackware aarch64 in the next few months. We will see. It is A LOT of work and I would likely do most of it myself.
 
Old 04-15-2021, 09:02 PM   #9
enine
Senior Member
 
Registered: Nov 2003
Distribution: Slackʍɐɹǝ
Posts: 1,486

Original Poster
Blog Entries: 4

Rep: Reputation: 282Reputation: 282Reputation: 282
I don't think one person needs to/should have to build everything. The way I understand the Ponce -current update github is its a copy of the 14.2 Slackbuilds and then as users in the community find issues they report them and Ponce will search for a fix or if the user knows of a fix he will accept it from them. So he doesn't have to build all the Slackbuilds himself. I would imagine a workflow for arm and arm64 and risc-v would work the same, fork the Slackbuilds site for each and let people try them and update as necessary. Though I wonder if a complete copy is even necessary for each as many build without changes so it would seem once 15 is released we could just try the 15 builds and only need to update any that need it. I was trying to think of some way I could help out.

Last edited by enine; 04-15-2021 at 09:04 PM.
 
Old 04-15-2021, 09:10 PM   #10
mralk3
Slackware Contributor
 
Registered: May 2015
Distribution: Slackware
Posts: 1,900

Rep: Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050Reputation: 1050
Slackbuild arm support?

It's not that bad once you get moving. Most of what ponce fixes translates to all of Slackware. The build flags can be set quite easily for every package in slackrepo. Globally or on an individual basis.

Once 15.0 is out such a project is far more feasible. Until then it's best to wait. The beginning of a stable release is usually when Slackbuilds.org is most stable and there are less build failures.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] sbopkg installs "original" SlackBuild to /usr/doc/<pkg>/ instead of "local" SlackBuild drumz Slackware 29 01-20-2018 12:12 AM
[Patch and SlackBuild] Grub-2.02~beta2 SlackBuild and Patch. ReaperX7 Slackware 3 01-28-2015 09:30 AM
Does anybody have a SlackBuild for Libre Office (ARM). Linux.tar.gz Slackware 35 12-12-2012 04:01 PM
Have you ever used "Emlink for ARM" Emulator to debug your ARM Cortex-M3 processors? kennyfly899 Linux - Newbie 0 06-27-2009 01:45 AM
Compile the linux2.6.14.1 for arm must ues the arm-linux-gcc-3.4.4? frankyue Linux - Embedded & Single-board computer 2 12-20-2008 07:28 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM

All times are GMT -5. The time now is 03:33 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration