Skip to content

Conversation

@Avenger-285714
Copy link
Member

Those each patch needs to be evaluated before merging, some may require trimming or modification.

The decision to merge a patch should be based on its merits.

Origin patches list:


# Changes to support package build system
debian/version.patch
debian/uname-version-timestamp.patch
debian/kernelvariables.patch
debian/mips-boston-disable-its.patch
debian/mips-ieee754-relaxed.patch
debian/mips-enable-r2-to-r6-emu-by-default.patch
debian/arch-sh4-fix-uimage-build.patch
debian/tools-perf-perf-read-vdso-in-libexec.patch
debian/tools-perf-install-python-bindings.patch
debian/wireless-add-debian-wireless-regdb-certificates.patch
debian/export-symbols-needed-by-android-drivers.patch
debian/android-enable-building-ashmem-and-binder-as-modules.patch
debian/documentation-drop-sphinx-version-check.patch
debian/perf-traceevent-support-asciidoctor-for-documentatio.patch
debian/kbuild-look-for-module.lds-under-arch-directory-too.patch
debian/kbuild-abort-build-if-subdirs-used.patch
debian/makefile-make-compiler-version-comparison-optional.patch
bugfix/all/revert-tools-build-clean-cflags-and-ldflags-for-fixdep.patch
debian/fixdep-allow-overriding-hostcc-and-hostld.patch
debian/linux-perf-remove-remaining-source-filenames-from-executable.patch

Link: https://salsa.debian.org/kernel-team/linux/-/tree/debian/latest/debian/patches?ref_type=heads

We want to enable use of the Android ashmem and binder drivers to
support Anbox, but they should not be built-in as that would waste
resources and increase security attack surface on systems that don't
need them.

- Add a MODULE_LICENSE declaration to ashmem
- Change the Makefiles to build each driver as an object with the
  "_linux" suffix (which is what Anbox expects)
- Change config symbol types to tristate

Update:
In upstream commit 721412e titled "staging: remove ashmem" the ashmem
driver was removed entirely. Secondary commit message:
"The mainline replacement for ashmem is memfd, so remove the legacy
code from drivers/staging/"
Consequently, the ashmem part of this patch has been removed.
@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from avenger-285714. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

* ABS.fmt/NEG.fmt execution mode.
*/
static enum { STRICT, EMULATED, LEGACY, STD2008, RELAXED } ieee754 = STRICT;
enum ieee754_mode { STRICT, EMULATED, LEGACY, STD2008, RELAXED };
Copy link
Member

Choose a reason for hiding this comment

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

相关提交已经合入
3d98267

Copy link
Member

Choose a reason for hiding this comment

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

不清楚这里需要选择 RELAXED 还是 EMULATED

Copy link
Member Author

Choose a reason for hiding this comment

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

不清楚这里需要选择 RELAXED 还是 EMULATED

和EMULATED没关系,只是从STRICT改为RELAXED吧。

解释说明如下:
`The IEEE Std 754 compliance mode requested is determined by the main executable. Any dynamic shared objects loaded in addition shall respect the mode according to the rules set below.

For strict' executables all the dynamic shared objects shall follow the same legacy-NaN or 2008-NaN ABI, as denoted by the EF_MIPS_NAN2008 flag described in Section 3.1. The value of the flag shall be the same across the executable and all the dynamic shared objects loaded together. Both strict' and legacy' dynamic shared objects shall be accepted, however relaxed' ones shall be rejected regardless of the value of their EF_MIPS_NAN2008 flag.

For relaxed' executables any dynamic shared objects shall be accepted, strict', relaxed' and legacy' alike, regardless of the value of their EF_MIPS_NAN2008 flag.

For legacy' executables the compliance mode is determined by the value of bit #25 in the a_val' member of the AT_FLAGS entry of the auxiliary vector received from the kernel. The value of 0' shall make the dynamic loader follow the rules for strict' executables. The value of 1' shall make the dynamic loader follow the rules for relaxed' executables.`

Link: https://web.archive.org/web/20180830093617/https://dmz-portal.mips.com/wiki/MIPS_ABI_-_NaN_Interlinking

bwhacks and others added 6 commits December 31, 2024 10:47
We want to enable use of the Android binder driver to support
Waydroid, but it should not be built-in as that would waste resources
and increase security attack surface on systems that don't need it.

Export the currently un-exported symbols it depends on.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: WangYuli <wangyuli@uniontech.com>
There are 2 mode of value of IEEE NaN hardcoded by CPU.
Currently, our mipsel/mips64el port is in so-called lagacy mode.
Loongson 3A 4000 is set as the so-called 2008 mode.

To make Debian workable on Loongson 3A 4000, we need set the kerenl in
RELAXED mode.

https://web.archive.org/web/20180830093617/https://dmz-portal.mips.com/wiki/MIPS_ABI_-_NaN_Interlinking

[bwh: Update for addition of EMULATED mode in 6.11]
We want to include the Debian version in the utsname::version string
instead of a full timestamp string.  However, we still need to provide
a standard timestamp string for gen_initramfs_list.sh to make the
kernel image reproducible.

Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to
$KBUILD_BUILD_TIMESTAMP.
For distribution binary packages we assume
$DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION
are set.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: WangYuli <wangyuli@uniontech.com>
@Avenger-285714
Copy link
Member Author

测试通过

@Avenger-285714 Avenger-285714 merged commit d2c044f into deepin-community:linux-6.6.y Dec 31, 2024
3 of 5 checks passed
@deepin-ci-robot
Copy link

deepin pr auto review

代码审查意见:

  1. Makefile中,新增的include/generated/package.h文件在archprepare目标中,但没有提供相应的生成规则。需要确保package.h文件在archprepare目标之前已经生成。

  2. arch/mips/kernel/fpu-probe.c文件中,ieee754变量被定义为enum类型,但是RELAXEDSTRICT的值没有在enum中定义,可能会导致编译错误。建议在enum中明确列出所有可能的值。

  3. arch/powerpc/kernel/process.carch/x86/um/sysrq_64.c文件中,LINUX_PACKAGE_ID被添加到打印信息中,但没有提供相应的定义。需要确保LINUX_PACKAGE_ID<generated/package.h>中定义。

  4. drivers/android/Kconfig文件中,Android Binder IPC Driver的配置选项被更改为tristate,但是没有提供相应的帮助信息。建议添加帮助信息以解释tristate选项的含义。

  5. drivers/android/Makefile文件中,binderfs.obinder_alloc_selftest.o的编译条件被移动到了binder_linux-$(CONFIG_ANDROID_BINDERFS)binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST)中,但是没有提供相应的生成规则。需要确保这些文件在相应的条件满足时被正确生成。

  6. drivers/android/binder_alloc.c文件中,binder_alloc_debug_mask的模块参数名称从debug_mask更改为alloc_debug_mask,但是没有更新所有引用该参数的地方。需要检查并更新所有相关的代码。

  7. init/Makefile文件中,build-timestamp的定义被更改为build-timestamp = $(or $(KBUILD_BUILD_VERSION_TIMESTAMP), $(KBUILD_BUILD_TIMESTAMP), $(build-timestamp-auto)),但是没有提供相应的生成规则。需要确保build-timestampinit/Makefile中正确生成。

  8. ipc/msgutil.cipc/namespace.c文件中,init_ipc_nsput_ipc_ns函数被导出为EXPORT_SYMBOL_GPL,但是没有提供相应的帮助信息。建议添加帮助信息以解释这些函数的用途。

  9. kernel/hung_task.c文件中,LINUX_PACKAGE_ID被添加到打印信息中,但没有提供相应的定义。需要确保LINUX_PACKAGE_ID<generated/package.h>中定义。

  10. kernel/sched/wait.c文件中,__wake_up_pollfree函数被导出为EXPORT_SYMBOL_GPL,但是没有提供相应的帮助信息。建议添加帮助信息以解释该函数的用途。

  11. kernel/task_work.c文件中,task_work_add函数被导出为EXPORT_SYMBOL_GPL,但是没有提供相应的帮助信息。建议添加帮助信息以解释该函数的用途。

  12. lib/dump_stack.c文件中,LINUX_PACKAGE_ID被添加到打印信息中,但没有提供相应的定义。需要确保LINUX_PACKAGE_ID<generated/package.h>中定义。

  13. mm/memory.c文件中,zap_page_range_single函数被导出为EXPORT_SYMBOL_GPL,但是没有提供相应的帮助信息。建议添加帮助信息以解释该函数的用途。

  14. security/security.c文件中,security_binder_set_context_mgrsecurity_binder_transactionsecurity_binder_transfer_bindersecurity_binder_transfer_file函数被导出为EXPORT_SYMBOL_GPL,但是没有提供相应的帮助信息。建议添加帮助信息以解释这些函数的用途。

  15. tools/lib/perf/Documentation/Makefiletools/perf/Documentation/Makefile文件中,ASCIIDOC_EXTRA的定义被更改为ASCIIDOC_EXTRA =,但是没有提供相应的生成规则。需要确保ASCIIDOC_EXTRAMakefile中正确生成。

  16. tools/perf/Makefile.perf文件中,install-python_ext目标的定义被更改为install-python_ext: install-bin try-install-man,但是没有提供相应的生成规则。需要确保install-python_extMakefile.perf中正确生成。

@Avenger-285714 Avenger-285714 changed the title [WIP] [Deepin Kernel SIG] [Debian] Apply some changes to better support package build system [Deepin Kernel SIG] [Debian] Apply some changes to better support package build system Dec 31, 2024
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.

6 participants