Hi folks,
In the hope this might be interesting for people...
I've just finished with my analysis of rebuilding the Debian archive
for armel and armhf using arm64 build machines. I've been rebuilding
the archive *specifically* to check if we would have any problems
building our 32-bit Arm ports (armel and armhf) using 64-bit arm64
hardware. I might have found other issues too, but that was my goal.
Executive summary:
As far as I can see we're basically fine to use arm64 hosts for
building armel and armhf, *so long as* those hosts include hardware
support for the 32-bit A32 instruction set. As I've mentioned before
in Debian, that's not a given on *all* arm64 machines, but there are
sufficient machine types available that I think we should be
fine. There are a couple of things we'll need to do in terms of setup.
See
https://blog.einval.com/2019/01/07#rebuilding_on_arm64
for the full article.
Cheers,
--
Steve McIntyre steve.mcintyre(a)linaro.org
<http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
I got this mail forwarded, I'm not on any of the lists, don't
know too much about Debian packaging, but generally attend
the C++ standards meeting.
On 10/11/18 16:32, Baurzhan Ismagulov wrote:
> ----- Forwarded message from Bill Gatliff <bgat(a)billgatliff.com> -----
>
> Date: Wed, 10 Oct 2018 14:00:42 -0500
> From: Bill Gatliff <bgat(a)billgatliff.com>
> To: Wookey <wookey(a)wookware.org>
> Cc: cross-distro(a)lists.linaro.org
> Subject: Re: Fw: Debian packaging, dependency management and the C++ standards
> meeting
>
> I'd be interested in helping out. I'm not an official Debian developer, but
> I've done a fair amount of packaging, am pretty skilled in C++, have a
> strong background in embedded work and presentations, and don't mind being
> That Guy when necessary.
>
> No interest in showing up unannounced or solo, though. Ideas?
Well, while the meeting lasts the whole week, tooling will
probably only discussed in one single evening session.
If you're actually interested in showing up, contact Titus
and ask him to fix the date. But the admin telco for the
meeting in San Diego will be only on Oct 26; Titus might not be
able to fix the date before that.
> On Wed, Oct 10, 2018, 10:05 AM Wookey <wookey(a)wookware.org> wrote:
>
>> This came up on debian-devel, and seems like a very cross-distro
>> thing, albeit not ARM-specific, so reposting here. Anyone here able to
>> explain/interested in explaining distro-thinking to the C++ standards
>> people (in San Diego)?
>>
>> ----- Forwarded message from Jussi Pakkanen <jpakkane(a)gmail.com> -----
>>
>> Date: Wed, 3 Oct 2018 19:56:29 +0300
>> From: Jussi Pakkanen <jpakkane(a)gmail.com>
>> To: debian-devel(a)lists.debian.org
>> Subject: Debian packaging, dependency management and the C++ standards
>> meeting
>>
>> Hi
>>
>> Last week I was at CppCon, which is the biggest C++ developers'
>> conference in the world. There were a lot of talks about dependencies,
>> packaging and deployment and other such things related to Debian. A
>> representative snippet can be seen in this video starting at 1:13:56:
>>
>> https://www.youtube.com/watch?v=TjdCxXdjaSA
>>
>> The tl/dr version is that people running the C++ standardisation work
>> do not really have knowledge about the way Debian does things and
>> because of this might not take relevant things into consideration. As
>> an example there is a rising trend of "discard ABI stability, static
>> link everything and recompile the world on every change" vibe going on
>> similar to most new system programming languages. This would make
>> things difficult for Debian due to obvious reasons.
>>
>> They specifically mention that there is a standardisation meeting next
>> month (in San Diego?) and that if people from Debian and other groups
>> underrepresented in the C++ standardisation process were to attend,
>> they would like to talk to them to understand their requirements. This
>> specific thing is mentioned in the video at 1:17, the person in the
>> white shirt answering the question is Titus Winters, Google's C++ lead
>> (of some sort, don't know the specifics) and he is a big advocate of
>> static linking everything.
But there are people in the C++ committee who need stable ABIs,
but often this can be restricted to specific parts of the interface,
while other parts can be linked in statically.
>> I can't attend due to geographical reasons but would there be someone
>> who could and would be interested? It would probably be beneficial to
>> have Debian people there to tell about those specific requirements,
>> because it seems like most people on the standardisation committee do
>> not really have a good grasp on what they are. In fact it might make
>> sense to send distro people in general, since the requirements are
>> very similar for Red Hat, Ubuntu, SuSE et al. If you have contacts in
>> those organisations who would be interested in this issue feel free to
>> send them links to this email thread. I know Red Hat at least has sent
>> people to the meeting in the past but on the language/stdlib side, not
>> for packaging (that I know of at least).
Yes, typically the some GCC people from Red Hat are at the meeting.
They know ABI requirements pretty well (GCC introduced a new linking
scheme for this in GCC 5.0) but probably don't know the specifics
of packaging.
>> An alternative, or parallel, approach could be to write a paper
>> outlining the issues and submitting it to the standard body. This does
>> require someone to be physically at the meeting and to present the
>> paper and its conclusions to the participants and be ready to answer
>> questions. (I have never actually done this myself, so the above
>> description might have flaws.)
This description is pretty accurate.
>> Having a position paper co-signed by
>> several different distros could be beneficial in making our views
>> heard.
Definitely. But the deadline for this meeting was last Moday.
But for an author it would probably be useful to be at the Meeting
(at least for the SG15 evening session) to get a feeling
of what the different people in the committee think.
And try to find co-authors inside the committee.
And then write a paper for the next meeting Feb 18-23, 2019 in Kona, HI.
Detlef
This came up on debian-devel, and seems like a very cross-distro
thing, albeit not ARM-specific, so reposting here. Anyone here able to
explain/interested in explaining distro-thinking to the C++ standards
people (in San Diego)?
----- Forwarded message from Jussi Pakkanen <jpakkane(a)gmail.com> -----
Date: Wed, 3 Oct 2018 19:56:29 +0300
From: Jussi Pakkanen <jpakkane(a)gmail.com>
To: debian-devel(a)lists.debian.org
Subject: Debian packaging, dependency management and the C++ standards meeting
X-Spam-Status: No, score=-0.2 required=4.0 tests=DKIM_SIGNED,DKIM_VALID,
DKIM_VALID_AU,DKIM_VERIFIED,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE autolearn=no
autolearn_force=no version=3.4.1
List-Id: <debian-devel.lists.debian.org>
Hi
Last week I was at CppCon, which is the biggest C++ developers'
conference in the world. There were a lot of talks about dependencies,
packaging and deployment and other such things related to Debian. A
representative snippet can be seen in this video starting at 1:13:56:
https://www.youtube.com/watch?v=TjdCxXdjaSA
The tl/dr version is that people running the C++ standardisation work
do not really have knowledge about the way Debian does things and
because of this might not take relevant things into consideration. As
an example there is a rising trend of "discard ABI stability, static
link everything and recompile the world on every change" vibe going on
similar to most new system programming languages. This would make
things difficult for Debian due to obvious reasons.
They specifically mention that there is a standardisation meeting next
month (in San Diego?) and that if people from Debian and other groups
underrepresented in the C++ standardisation process were to attend,
they would like to talk to them to understand their requirements. This
specific thing is mentioned in the video at 1:17, the person in the
white shirt answering the question is Titus Winters, Google's C++ lead
(of some sort, don't know the specifics) and he is a big advocate of
static linking everything.
I can't attend due to geographical reasons but would there be someone
who could and would be interested? It would probably be beneficial to
have Debian people there to tell about those specific requirements,
because it seems like most people on the standardisation committee do
not really have a good grasp on what they are. In fact it might make
sense to send distro people in general, since the requirements are
very similar for Red Hat, Ubuntu, SuSE et al. If you have contacts in
those organisations who would be interested in this issue feel free to
send them links to this email thread. I know Red Hat at least has sent
people to the meeting in the past but on the language/stdlib side, not
for packaging (that I know of at least).
An alternative, or parallel, approach could be to write a paper
outlining the issues and submitting it to the standard body. This does
require someone to be physically at the meeting and to present the
paper and its conclusions to the participants and be ready to answer
questions. (I have never actually done this myself, so the above
description might have flaws.) Having a position paper co-signed by
several different distros could be beneficial in making our views
heard.
The downside is that the deadline for submitting papers is fairly
short, I think something like 1.5 weeks so this would need to move
fairly quickly.
Thanks,
(not subscribed to the list so please cc)
----- End forwarded message -----
Wookey
--
Principal hats: Linaro, Debian, Wookware, ARM
http://wookware.org/
When we first ported EDK2 to KVM/arm, we implemented a workaround for
the quirky timer handling on the KVM side. This has been fixed in
Linux commit f120cd6533d2 ("KVM: arm/arm64: timer: Allow the timer to
control the active state") dated 23 June 2014, which was incorporated
into Linux release 4.3.
So almost 4 years later, it should be safe to drop this workaround on
the EDK2 side.
This reverts commit b1a633434ddc.
Cc: cross-distro(a)lists.linaro.org
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
Acked-by: Marc Zyngier <marc.zyngier(a)arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm(a)linaro.org>
Acked-by: Laszlo Ersek <lersek(a)redhat.com>
---
v2: add acks
Note to cross-distro readers: this means guest firmware built with this patch
will not work on KVM/ARM hosts using kernel v4.2 or earlier.
ArmPkg/Drivers/TimerDxe/TimerDxe.c | 1 -
ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c | 10 ----------
2 files changed, 11 deletions(-)
diff --git a/ArmPkg/Drivers/TimerDxe/TimerDxe.c b/ArmPkg/Drivers/TimerDxe/TimerDxe.c
index a3202fa056f3..bd616d2efc73 100644
--- a/ArmPkg/Drivers/TimerDxe/TimerDxe.c
+++ b/ArmPkg/Drivers/TimerDxe/TimerDxe.c
@@ -337,7 +337,6 @@ TimerInterruptHandler (
// Set next compare value
ArmGenericTimerSetCompareVal (CompareValue);
- ArmGenericTimerEnableTimer ();
ArmInstructionSynchronizationBarrier ();
}
diff --git a/ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c b/ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c
index 69a4ceb62db6..c941895a3574 100644
--- a/ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c
+++ b/ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c
@@ -26,16 +26,6 @@ ArmGenericTimerEnableTimer (
TimerCtrlReg = ArmReadCntvCtl ();
TimerCtrlReg |= ARM_ARCH_TIMER_ENABLE;
-
- //
- // When running under KVM, we need to unmask the interrupt on the timer side
- // as KVM will mask it when servicing the interrupt at the hypervisor level
- // and delivering the virtual timer interrupt to the guest. Otherwise, the
- // interrupt will fire again, trapping into the hypervisor again, etc. etc.
- // This is scheduled to be fixed on the KVM side, but there is no harm in
- // leaving this in once KVM gets fixed.
- //
- TimerCtrlReg &= ~ARM_ARCH_TIMER_IMASK;
ArmWriteCntvCtl (TimerCtrlReg);
}
--
2.17.0
Hello,
For information, a patch has been posted to the glibc development list:
https://sourceware.org/ml/libc-alpha/2018-04/msg00393.html
which enables searching of "atomics" subdirectories when ld loads
libraries, for systems where 8.1 atomics are enabled.
This should allow one to employ the 8.1 atomics "baked in" to an
optimised self-contained library rather than have to decouple them
with alternative code paths, ifuncs, custom loaders etc.
As an example, with this patch applied and running in a test model
with 8.1 atomics enabled, and a filesystem with an extra libc
supplied; I got the following from /proc/self/maps:
/lib/aarch64-linux-gnu/atomics/libc.so.6
(re-running the model without atomics enabled gave the libc in
/lib/aarch64-linux-gnu/ instead).
Cheers,
--
Steve
= LSE atomics problem =
Large System Extensions, part of ARMv8.1, provides new atomics
instructions. These instructions are essential for high performance
locking when you have lots of cores.
Recommendation: distributions should provide an alternative optimized
glibc with LSE atomics based locks for end users.
= Scalable Vector Extensions =
May have an ABI issue. Situation under investigation.
= Page size =
Don't assume your binaries will always execute in the page size they
were built on. Even if your distribution is built on 4K page size, be
aware that some of your users might opt to run with 64K page size
kernel - for example in containers.
Users be aware, that switching between 4K and 64K kernels may break
some data structures that depend on page size. Swap needs be
reformatted, and btrfs will explode on page size change-
= OCI spec =
With LSE, SVE, armv8.x releases coming, any containers using newer
instructions should be identified in variant field.
= Booting =
One day, booting on arm will be so boring, that nobody will bring it
up on our cross-distribution BoF. That day was not today.
RHEL only supports ACPI on arm64. Even if you are not RHEL, you should
prefer ACPI over device tree, if the former is available.
U-boot can now start EFI binaries, making u-boot an excellent platform
to implement an UEFI bios. This allows single-path installers for
distributions, where install of distribution starts always by loading
grub from EFI.
On arm64, Kernel doesn't self-decompress. The bootloaders are stringly
recommended to support decompressing kernel images. It's optional in
grub, make sure your grub does. At least iPXE and u-boot don't support
booting Image.gz on arm64, and should be fixed.
Riku
Hi,
We'll have the traditional cross-distribution BoF at Linaro connect
Wednesday 27.9, at 3PM US pacific time - 22.00 UTC. We don't have a
set agenda, but if anything is bugging you, replying to this mail is
great way to make it into our topics :)
Riku
hey,
I'm investigating enabling AArch32/Virt edk2 builds in Debian:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857858
I wanted to see if we can reach a consensus on what the pathname for
these images should be, as these paths for other architectures have
become hardcoded in upstream projects like OpenStack Nova and libvirt.
These project currently expect to find the AArch64 images at:
/usr/share/AAVMF/AAVMF_{CODE,VARS}.fd
And, similarly, the x86-64 images at:
/usr/share/ovmf/OVMF_{CODE,VARS}.fd
I'm unaware of anyone shipping 32-bit x86 images.
I propose:
/usr/share/AAVMF/AAVMF32_{CODE,VARS}.fd
-dann
On Mär 16 2017, Wookey <wookey(a)wookware.org> wrote:
> After feedback from people interested in ILP32, and discussion at
> Linaro Connect, it seems that everyone involved is in agreement that
> the triplets with the 'ilp32' bit in the ABI/OS part rather than the
> machine/cpu part makes more sense. And that we can and should change
> it, so long as it doesn't add significant delay. Thus it was agreed to
> make this change. So the triplet for ilp32 on arm64/aarch64 is now:
>
> aarch64-linux-gnu_ilp32 (normal, little endian)
> aarch64_be-linux-gnu_ilp32 (big endian)
That makes it quite difficult to support building ilp32 packages with
rpm.
Andreas.
--
Andreas Schwab, SUSE Labs, schwab(a)suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."