aboutsummaryrefslogtreecommitdiff
blob: 1df682653f35bbd0204a0bc86b732ac3c3c00517 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
title: 'Gentoo x86-64-v3 binary packages available'
---

<a href="https://www.gentoo.org/news/2024/02/04/x86-64-v3.html" class="news-img-right">
  <img src="https://www.gentoo.org/assets/img/news/2024/larry-packages-small.png" alt="Larry the cow with packages"/>
</a>

End of December 2023 we already made our <a href="https://www.gentoo.org/news/2023/12/29/Gentoo-binary.html">official
announcement of binary Gentoo package hosting</a>. The initial package set for amd64 was and is 
base-line x86-64, i.e., it should work on any 64bit Intel or AMD machine. Now, we are happy to
announce that there is also a separate package set using the <a 
href="https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels"><b>extended 
x86-64-v3 ISA</b> (i.e., microarchitecture level)</a>
available for the same software. If your hardware supports it, use it and enjoy the speed-up! 
<a href="https://www.gentoo.org/news/2024/02/04/x86-64-v3.html">Read on for more details...</a>

<!--more-->

## Questions & Answers

### How can I check if my machine supports x86-64-v3?

The easiest way to do this is to use glibc's dynamic linker:
```
larry@noumea ~ $ ld.so --help
Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]
You have invoked 'ld.so', the program interpreter for dynamically-linked
ELF programs.  Usually, the program interpreter is invoked automatically
when a dynamically-linked executable is started.
[...]
[...]

Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)
larry@noumea ~ $ 
```
As you can see, this laptop supports x86-64-v2 and x86-64-v3, but not x86-64-v4.

### How do I use the new x86-64-v3 packages?

On your amd64 machine, edit the configuration file in `/etc/portage/binrepos.conf/`
that defines the URI from where the packages are downloaded, and replace `x86-64` with
`x86-64-v3`. E.g., if you have so far
```
sync-uri = https://ftp.fau.de/gentoo/releases/amd64/binpackages/17.1/x86-64/
```
then you change the URI to
```
sync-uri = https://ftp.fau.de/gentoo/releases/amd64/binpackages/17.1/x86-64-v3/
```
That's all.

### Why don't you have x86-64-v4 packages?

There's not yet enough hardware and people out there that could use them.

We could start building such packages at any time (our build host is new and 
shiny), but for now we recommend you build from source and use your
own CFLAGS then. After all, if your machine supports x86-64-v4, it's definitely fast...

### Why is there recently so much noise about x86-64-v3 support in Linux distros?

Beats us. The ISA is 9 years old (just the tag x86-64-v3 was slapped onto
it recently), so you'd think binaries would have been generated by now. 
With Gentoo you could've done (and probably have done) it all the time.

That said, in some processor lines (i.e. Atom), support for this instruction
set was introduced rather late (2021).