futurejones / swift-arm64 Goto Github PK
View Code? Open in Web Editor NEWSwift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more
Swift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more
After running the curl
command, I type sudo apt-get install swift4
, which outputs this in terminal:
Reading package lists...Done
Building dependency tree
Reading state information...Done
E: Unable to locate package swift4
I tried apt-cache search swift4
and nothing gets outputted. apt-cache search swift
shows some packages, but not sure if they're compatible with whatever's in the curl command.
Describe the bug
I get this error when i run sudo apt install swiftlang
(I followed the instructions on the website and chose the latest version):
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
swiftlang : Depends: libgcc-5-dev but it is not installable
Depends: libstdc++-5-dev but it is not installable
E: Unable to correct problems, you have held broken packages.
Expected behavior
It should be installed without any errors.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Swift
Additional context
I got this error before and I always managed to install swift somehow.
Hello, im new with Raspberry and I currently run raspbian os on zero w board. (deb 10 armhf)
Last version of swift available is 5.1.5.
Will you support armhf with new releases? Or need switch to other os?
Regards, Roman
I tried to use sourcekit-lsp with vscode.
I can do it on my x86 ubuntu. but can't make it work on my pi4 with ubuntu 20.04 64bit.
I have successfully installed swift and vapor using sudo apt install swiftlang vapor
on UBUNTU (raspberry pi). But the problem is when I check swift version using swift --version
it shows following line in terminal -bash: /usr/share/swift/usr/bin/swift: cannot execute binary file: Exec format error
I don't know what is the problem.
Is it possible to build Swift Foundation & ship to swiftlang together?
Hey
I'm running swift from this build on my Jetson Nano 2GB successfully :) I did not run explicit tests, just built and ran my pet project. Literally worked out of the box
I was wondering if the current Swift release 5.3.2 can be made available on ARM64?
Hi Jones,
Is there a way to have this package version built as well as the others? This was the version what I could make work on my Synology NAS. It is shipped with quite old libc, libstdc++ libs and all it's lib stuff is quite old.
(I know that DSM 7.0 shipped with newer GPL stuff (and dropped a lot of useful features), but it is quite a memory hog, and they already dropped support for arm nas-es since the latest version. So there is no point upgrade the OS.)
The other way I am thinking of if is there a way to cross-compile Swift on x64 to aarch64?
It takes ages on a normal machine, but on some weak arm cpu is like years to compile
Thanks
My Pi 4 is running Linux pi4 5.10.17-v8+ #1421 SMP PREEMPT Thu May 27 14:01:37 BST 2021 aarch64 GNU/Linux
but installs Swift 5.1.5. The swift-arm install script set the source to deb https://packagecloud.io/swift-arm/release/raspbian/ buster main
. Is that correct?
I'm trying to build a swift for raspberry pi, because I did not find ready-made builded of versions from 5.3 and higher. but I can't build any version, I tried to build 5.3, 5.4.2.
It would be great if there were ready-made scripts that would allow you to independently build the swift of the desired version.
I've installed swiftlang-5.5.2-debian-11-release-aarch64-01-2021-12-4.tar.gz on my chromebook. In case you're not familiar, ChromeOS can install a debian instance in a kvm.
Swift works great when I have my source code in internal storage, I can even create gui programs using TokamakGTK.
But because I only have 64gb to share between Chrome and Linux, I only allocate 10 gb to linux, and then most of my linux files, including projects, are kept on a 128gb usb. This works fine for other languages, such as cpp, but not for swift
So for example, when I:
cd /mnt/chromeos/removable/deimos/
mkdir HelloWorldSPM
cd HelloWorldSPM
swift package init --type executable
swift build
error: unable to attach DB: error: accessing build database "/mnt/chromeos/removable/deimos/HelloWorldSPM/.build/aarch64-unknown-linux-gnu/build.db": disk I/O error
Hey,
when trying swift run on a package, I get the following error:
[1/1] Planning build
tried other packages, always the same result
tried to remove swiftlang and all dependencies but the error still remains
*running on an pi4 with Ubuntu 20.04.2 64bit
Hey, does someone run Swift with a own compiled Busybox/Buildroot Linux? Maybe to share the experience?
How can I build for Manjaro or Arch?
I just got swift
5.3.1 working on Ubuntu 20.10 by downloading the repo config script and passing os=ubuntu dist=focal
when running it. It would be great to have a "native" repo available for Ubuntu 20.10.
I have this installed on a Raspberry Pi running Ubuntu 20.10. What is the recommended setup for 5.3.3 to enable debugging? I can't seem to get any of the LLVM plugins to work.
Seems to successfully run script.
curl -s https://packagecloud.io/install/repositories/swift-arm/debian/script.deb.sh | sudo bash
but when using apt to install it can't find swift4.
$ sudo apt install swift4
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package swift4
doing sudo apt search swift shows nothing that appears to be swift on arm...
$ uname -a
Linux nanopct4 4.4.156-rk3399 #23 SMP Wed Sep 19 11:56:15 CEST 2018 aarch64 aarch64 aarch64 GNU/Linux
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
$ cat /etc/apt/sources.list.d/swift-arm_debian.list
# this file was generated by packagecloud.io for
# the repository at https://packagecloud.io/swift-arm/debian
deb https://packagecloud.io/swift-arm/debian/ubuntu/ bionic main
deb-src https://packagecloud.io/swift-arm/debian/ubuntu/ bionic main
incidentally it would be really nice to have swift included as an installable from the armbian-config menu.
How come the latest build package for swiftlang for the raspberrypi/armhf platform and raspbian/buster distribution is 5.1.5 ?
This is the latest package I can find on the https://packagecloud.io/swift-arm/release repo:
swiftlang_5.1.5-1_armhf.deb
While the latest packages on this repo for other arch/distro is: 5.4.x
Is that because of some dependency problems or alike?
Can you please build the latest version?
Or show me how (although I have never build such myself before) ?
> apt search swiftlang
swiftlang/buster 5.1.5-1 armhf
Swift 5.1.5 RELEASE for raspbian/buster - All RaspberryPi's: Classic, Zero, 2, 3, 4 - Swift-Arm Community Release.
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
swiftlang
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/386 MB of archives.
After this operation, 1294 MB of additional disk space will be used.
E: Tar checksum failed, archive corrupted
E: Prior errors apply to /var/cache/apt/archives/swiftlang_5.3.3-5-debian-buster_arm64.deb
debconf: apt-extracttemplates failed: No such file or directory
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
dpkg-deb: error: tar subprocess returned error exit status 2
dpkg: error processing archive /var/cache/apt/archives/swiftlang_5.3.3-5-debian-buster_arm64.deb (--unpack):
dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
/var/cache/apt/archives/swiftlang_5.3.3-5-debian-buster_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
In the more recent builds, @objc
is no longer simply ignored. @objc
should be ignored instead of throwing error: Objective-C interoperability is disabled
regardless of the availability of Objective-C.
Since swift doesn't support the following:
#if os(iOS)
@objc
#endif
we would have to duplicate all the functions/properties simply to ignore @objc.
#if os(Apple…)
@objc
public func invokeAction() {
//do a lot of stuff
//and do lots more stuff
}
#else
public func invokeAction() {
//do a lot of stuff
//and do lots more stuff
}
#endif
I tried -enable-objc-interop
, but either it is no longer functional or I don't understand how it should be used.
First off, thank you for the great work in pulling this all together in one place. It's awesome to have working aarch64 builds of the Swift toolchain, especially the Swift for TensorFlow one.
In the latest Swift for TensorFlow builds, libtensorflow and libtensorflow_framework have been missing from the packaging. I believe this can be fixed by adding
install-tensorflow
to the build-presets.ini patch. I tested this out on my Jetson Xavier here, and it does seem to cause the libraries to be copied over into the right place.
Also, I was successfully able to enable CUDA support for the Jetson devices, but I don't know if that's something you'd like to have in the broader patch repository. It may only enable GPU support for these devices, because I'm not sure of CUDA support on other aarch64 hardware.
To do this, I added the following to /tensorflow/third_party/gpus/crosstool/CROSSTOOL.tpl (not sure if this part is needed, actually):
default_toolchain {
cpu: "aarch64"
toolchain_identifier: "local_linux"
}
and I inserted the aarch64 line here in /tensorflow/third_party/gpus/crosstool/BUILD.tpl:
cc_toolchain_suite(
name = "toolchain",
toolchains = {
...
"aarch64": ":cc-compiler-local",
},
)
Switching the patched area in build-presets.ini from enable-tensorflow
to enable-tensorflow-gpu
then should enable building a CUDA-compatible Swift for TensorFlow toolchain on at least the Jetson devices. Again, not sure if you'd want a pull request formulated for this because it may not be relevant for non-Jetson devices.
Running my Raspberry Pi rpi4 on Ubuntu 21.04 Hirsute Hippo (Aarch64 version):
$ uname -a
Linux rpi4 5.11.0-1007-raspi #7-Ubuntu SMP PREEMPT Wed Apr 14 22:08:05 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Attempt to install through apt
:
$ curl -s https://packagecloud.io/install/repositories/swift-arm/release/script.deb.sh | sudo bash
$ sudo apt-get install swiftlang
fails in the following way:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
swiftlang : Depends: libpython3.8 but it is not installable
E: Unable to correct problems, you have held broken packages.
It appears (some) dependencies are not up-to-date for the default packages this release.
In particular libpython3.8
fails (which is now on 3.9, 3.8 is not supported anymore https://launchpad.net/ubuntu/hirsute/amd64/libpython3.8).
I use https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=275370 provided for 64-bit operating systems. This problem occurred during installation.
I'm a raspberry pi 3B.
The following packages have unmet dependencies:
swift5:armhf : Depends: clang:armhf but it is not going to be installed
Depends: python2.7-dev:armhf but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.