@LarryDave Upstream moved it from git submodule into the repo. It should still work.
Search Criteria
Package Details: pcsx2-avx-git 2.3.212.r1.gfbc95f2-2
Package Actions
Git Clone URL: | https://aur.archlinux.org/pcsx2-avx-git.git (read-only, click to copy) |
---|---|
Package Base: | pcsx2-avx-git |
Description: | PlayStation 2 emulator |
Upstream URL: | https://github.com/PCSX2/pcsx2 |
Licenses: | GPL-3.0-or-later |
Conflicts: | pcsx2 |
Provides: | pcsx2 |
Submitter: | xiota |
Maintainer: | xiota |
Last Packager: | xiota |
Votes: | 2 |
Popularity: | 0.005369 |
First Submitted: | 2023-12-13 14:14 (UTC) |
Last Updated: | 2025-03-11 20:27 (UTC) |
Dependencies (20)
- libpcap (libpcap-gitAUR)
- libpng (libpng-gitAUR, libpng-apngAUR)
- libpulse (pulseaudio-dummyAUR, libpulse-gitAUR)
- libwebp (libwebp-gitAUR)
- libxi (libxi-gitAUR)
- libxrandr (libxrandr-gitAUR)
- qt6-base (qt6-base-gitAUR, qt6-base-noguiAUR, qt6-base-headlessAUR)
- sdl3 (sdl3-gitAUR)
- 7zip (make)
- clang (llvm-gitAUR, clang-minimal-gitAUR, clang17-binAUR) (make)
- cmake (cmake-gitAUR) (make)
- extra-cmake-modules (extra-cmake-modules-gitAUR) (make)
- git (git-gitAUR, git-glAUR) (make)
- lld (llvm-gitAUR) (make)
- llvm (llvm-gitAUR, llvm-minimal-gitAUR) (make)
- ninja (ninja-kitwareAUR, ninja-memAUR, ninja-fuchsia-gitAUR, ninja-gitAUR, ninja-jobserverAUR) (make)
- qt6-tools (make)
- shaderc (shaderc-gitAUR) (make)
- alsa-utils (alsa-utils-gitAUR) (optional) – Sound player for RetroAchievements
- gstreamer (gstreamer-gitAUR) (optional) – Backup sound player for RetroAchievements
Required by (4)
- better-libretro-pcsx2-launcher-git (requires pcsx2)
- libretro-pcsx2-launcher (requires pcsx2)
- libretro-pcsx2-launcher-git (requires pcsx2)
- pcsx2-plugin-usbqemu-wheel (requires pcsx2)
Sources (2)
xiota commented on 2024-03-03 22:52 (UTC)
LarryDave commented on 2024-03-03 17:12 (UTC)
I see retroachievements was removed. Why? I use it a lot myself but I still compiled it. Can't tell if it still works or not.
xiota commented on 2024-02-18 22:22 (UTC) (edited on 2024-02-18 22:23 (UTC) by xiota)
@LarryDave You used commas instead of space to separate the new option. The commas make the addition part of the existing option, instead of being a separate option.
march=native
produces binaries that may not work when moved to another computer (illegal instruction error). If you have only one computer, or all your computers use the exact same processor (including generation), it doesn't matter.
LarryDave commented on 2024-02-18 19:40 (UTC)
Nevermind, I guess I get it now. Passed to the linker as you said. Put it at the beginning before -W1, O1
and it worked now.
Btw, what is there reason for preventing -march=native? I replaced the x86-64-v3 mentions with rocketlake as that is what my CPU family is. Just wondering.
LarryDave commented on 2024-02-18 08:32 (UTC)
So to use mold, I don't use mold? That doesn't make sense. I just followed what the wiki said. https://wiki.archlinux.org/title/Makepkg#Using_mold_linker
To use mold, append
-fuse-ld=mold
toLDFLAGS
.
Doesn't matter if I put -fuse-ld=mold
right after -Wl,-O1
or at the very end after -z,pack-relative-relocs
, it fails. Maybe I don't get it...
xiota commented on 2024-02-16 23:52 (UTC) (edited on 2024-02-16 23:56 (UTC) by xiota)
@LarryDave Your initial comment did not contain details or logs needed to reproduce the problem.
From the log, LDFLAGS
in your makepkg.conf
most likely contains:
-Wl,-O1,-fuse-ld=mold,--sort-common,--as-needed,-z,relro,-z,now,-z,pack-relative-relocs
-Wl
contains options to pass to the linker. -fuse-ld
is an option for the compiler to switch linkers. When -fuse-ld
is part of -Wl
, it is sent directly to the linker. Consequently, your config has been linking with ld
, not mold
. ld
ignores -fuse-ld
.
The PKGBUILD
does switch linkers by passing -fuse-ld
to the compiler. Both mold
and lld
would generate errors with your config because the extraneous option is unknown to them.
LarryDave commented on 2024-02-16 11:44 (UTC)
I mean, I don't know what to tell you. Removing -fuse-ld=mold
from my /etc/makepkg.conf fixes it. Can you try having that in your own makepkg.conf rather than adding it twice with LDFLAGS+
?
https://privatebin.net/?0389615227a0cd9d#B4gW4MoQy7k1PdtHBknrQkhbokNXaWvAPVaXwQLiYgwS
When I have -fuse-ld=mold
in my /etc/makepkg.conf, it fails when both build_clang and build_mold is set to true. Literally the only thing I do is remove -fuse-ld=mold
from my own makepkg.conf and it builds without issue.
xiota commented on 2024-02-11 02:30 (UTC)
@LarryDave I doubt duplicate use-ld
options is the cause of your problem. Most compilers ignore duplicate flags, respecting the last one. I was able to build successfully with:
LDFLAGS+=" -fuse-ld=mold -fuse-ld=mold"
LarryDave commented on 2024-02-10 16:19 (UTC)
Fails building if /etc/makepkg.conf LDFLAGS already contains -fuse-ld=mold
when both clang and mold options are set to true. Removing -fuse-ld=mold
from my makepkg.conf fixes it.
xiota commented on 2024-01-24 03:02 (UTC) (edited on 2024-02-13 12:57 (UTC) by xiota)
Those interested in profile-guided optimization may try a time-consuming process.
- Make instrumented package:
- Set environment variable or edit PKGBUILD:
_build_instrumented=true
- Resulting package:
pcsx2-instrumented-avx-git
- Set environment variable or edit PKGBUILD:
- Create raw profiles using instrumented package.
LLVM_PROFILE_FILE="default_%9m.profraw" pcsx2-qt
- Use a "representative" sample of roms.
- After 9 runs, profraw files will be overwritten.
- Process profiles:
llvm-profdata merge -output=pcsx2-avx-git.profdata *.profraw
- Rebuild package.
- Put
pcsx2-avx-git.profdata
in same folder with PKGBUILD. - Look for message: "Compiling with profile-guided optimization."
- Profile can be reused. Re-profile when there are too many "function control flow change" warnings.
- Resulting package:
pcsx2-avx-git
- Put
Pinned Comments
xiota commented on 2024-01-24 03:02 (UTC) (edited on 2024-02-13 12:57 (UTC) by xiota)
Those interested in profile-guided optimization may try a time-consuming process.
_build_instrumented=true
pcsx2-instrumented-avx-git
LLVM_PROFILE_FILE="default_%9m.profraw" pcsx2-qt
llvm-profdata merge -output=pcsx2-avx-git.profdata *.profraw
pcsx2-avx-git.profdata
in same folder with PKGBUILD.pcsx2-avx-git
xiota commented on 2023-12-13 14:29 (UTC) (edited on 2025-02-22 07:14 (UTC) by xiota)
By default, this package targets x86-64-v3 instructions (avx/avx2). Performance benefit over standard builds is probably minimal because of dynamic dispatch.
Other microarchitecture levels (v2, v3, v4) may also work by editing some config files.
makepkg.conf
—CARCH="x86_64_v4"
pacman.conf
—Architecture = auto x86_64 x86_64_v2 x86_64_v3 x86_64_v4
/usr/share/devtools/setarch-aliases.d/x86_64_v4
— Contents:x86_64
Problems: