Ports/loongarch64/New wold, old world, libLoL

From ALT Linux Wiki
Stub.png
Under construction.
This page is not finished yet and may lack substantial information.


Старый и новый мир

As of fall of 2024, LoongArch has two incompatible programming systems. It's customary to call them new world (nw) and old world (ow).

The two worlds emerged because Loongson Corporation has adopted the business strategy of hidden development and sudden launch of LoongArch. The architecture was announced with a full ecosystem of commercial Linux distributions and compatible (mostly proprietary) software. However, later several braking changes had to be made during upstreaming LoongArch architecture support to various free software projects. So now there are two incompatible software ecosystems for LoongArch:

  • old world -- commercial distributions (Kirin, Loongnix, UOS), and compatible software, including:
    • Tencent's QQ for Linux
    • Kingsoft's WPS Office for Linux
    • Loongson Browser (based Chromium)
  • new world -- most free software and distributions based on it, including, obviously, the Sisyphus port.

New world and old world incompatibilities include:

  • bootloader (EFI) ABI
  • set of linux kernel system calls
  • symbol versions in system libraries (GLIBC mostly)
  • ...

As a result, software build for one world does not work in another. гом.

libLoL

As of today (2024 fall) libLoL (LoongArch on LoongArch) is the most well-developed solution that provides a compatibility layer for running old wold applications on new world operating systems. It has two main parts:

  • kernel module la_ow_syscall that implements additional system calls
  • patched glibc that provides symbol versions and additional interfaces required by old world applications.

To use libLoL on ALT you need to install the userspace part and the kernel module for the kernel you use. For example, for our default kernel:

# apt-get install liblol kernel-modules-la_ow_syscall-loongarch

With this liblol we've checked the work of:

  • wps-office 11.1.0.11719 (unpacked .deb)
  • Loongson Browser (lbrowser) 3.3.1876.3-1.stable
  • com.tencent.wechat 1.0.0.241
  • some packages from old-world distros.