Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove native nasm #6263

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Conversation

hgy59
Copy link
Contributor

@hgy59 hgy59 commented Oct 7, 2024

Description

  • remove native nasm, it is a prerequisite in the dev. environment since update to debian 12
  • remove native yasm
  • update related Makefiles

Fixes #

Affected Libraries

Direct dependencies

  • cross/dav1d
  • cross/ffmpeg*
  • cross/lame
  • cross/libaom
  • cross/libvpx
  • cross/openh264
  • cross/stv-av1
  • cross/x264
  • cross/x265

Further findings

  • cross/zstd

Affected Packages

By direct dependencies

  • ffmpeg*
  • chromaprint
  • comskip
  • tvheadend
  • imagemagick
  • mpd
  • rutorrent

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Includes small framework changes

- remove native nasm, it is a prerequisite in the dev. environment since update to debian 12
- remove native yasm
- update related Makefiles
- change affected packages to trigger build
@hgy59 hgy59 requested a review from th0ma7 October 9, 2024 19:05
Copy link
Contributor

@th0ma7 th0ma7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beside possible issue found with openh264 that your change brought to light, LGTM.

Comment on lines +21 to +25
NASM_BINARY = $(shell which nasm)
ifeq ($(NASM_BINARY),)
$(error nasm not found. Please install NASM assembler)
endif
ENV += AS=$(NASM_BINARY)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is odd, the meson build system is probably cleaver enough to understand that AS=nasm isn't applicable other than on x86_64. But really there should be a pre-validation for x64 arch bfore this, like with other use-cases, as otherwise AS for all archs becomes superseeded with this irrelevant AS value.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found another issue in cross/zstd with ninja compile
When CMAKE_USE_NASM = 1 is not defined it uses nasm to create huf_decompress_amd64.S.o, but if it is defined, it uses gcc to create the file.

without CMAKE_USE_NASM = 1

[24/103] Building ASM object lib/CMakeFiles/libzstd_shared.dir/spksrc/cross/zstd-1.5.6_cmake/work-x64-7.1/zstd-1.5.6/lib/decompress/huf_decompress_amd64.S.o

with CMAKE_USE_NASM = 1

[24/103] Building C object lib/CMakeFiles/libzstd_shared.dir/spksrc/cross/zstd-1.5.6_cmake_nasm/work-x64-7.1/zstd-1.5.6/lib/decompress/huf_decompress_amd64.S.o

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants