sfjro / aufs-standalone

29 stars 13 forks source link

patching file mm/mmap.c fails for kernel 6.11.3 #47

Open vladns opened 1 month ago

vladns commented 1 month ago

  -> Found linux-6.11.3.tar.xz
  -> Found linux-6.11.3.tar.sign
  -> Found linux-v6.11.3-arch1.patch.zst
  -> Found linux-v6.11.3-arch1.patch.zst.sig
  -> Found config
  -> Found aufs6-base.patch
  -> Found aufs6-kbuild.patch
  -> Found aufs6-mmap.patch
  -> Found aufs6-standalone.patch
  -> Found vfs-ino.patch
  -> Found Kconfig.patch
  -> Found regd.c.patch
==> Generating checksums for source files...
==> Making package: linux-aufs 6.11.3.arch1-1 (Сб 12 окт 2024 20:23:10)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found linux-6.11.3.tar.xz
  -> Found linux-6.11.3.tar.sign
  -> Found linux-v6.11.3-arch1.patch.zst
  -> Found linux-v6.11.3-arch1.patch.zst.sig
  -> Found config
  -> Found aufs6-base.patch
  -> Found aufs6-kbuild.patch
  -> Found aufs6-mmap.patch
  -> Found aufs6-standalone.patch
  -> Found vfs-ino.patch
  -> Found Kconfig.patch
  -> Found regd.c.patch
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with sha256sums...
    linux-6.11.3.tar.xz ... Passed
    linux-6.11.3.tar.sign ... Skipped
    linux-v6.11.3-arch1.patch.zst ... Passed
    linux-v6.11.3-arch1.patch.zst.sig ... Skipped
    config ... Passed
    aufs6-base.patch ... Passed
    aufs6-kbuild.patch ... Passed
    aufs6-mmap.patch ... Passed
    aufs6-standalone.patch ... Passed
    vfs-ino.patch ... Passed
    Kconfig.patch ... Passed
    regd.c.patch ... Passed
==> Validating source files with b2sums...
    linux-6.11.3.tar.xz ... Passed
    linux-6.11.3.tar.sign ... Skipped
    linux-v6.11.3-arch1.patch.zst ... Passed
    linux-v6.11.3-arch1.patch.zst.sig ... Skipped
    config ... Passed
    aufs6-base.patch ... Passed
    aufs6-kbuild.patch ... Passed
    aufs6-mmap.patch ... Passed
    aufs6-standalone.patch ... Passed
    vfs-ino.patch ... Passed
    Kconfig.patch ... Passed
    regd.c.patch ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting linux-6.11.3.tar.xz with bsdtar
  -> Extracting linux-v6.11.3-arch1.patch.zst with zstd
==> Starting prepare()...
Setting version...
Copy directory aufs...
Copy driver for ax88179...
Applying patch linux-v6.11.3-arch1.patch...
patching file Makefile
patching file arch/Kconfig
patching file drivers/firmware/sysfb.c
patching file include/linux/user_namespace.h
patching file init/Kconfig
patching file kernel/fork.c
patching file kernel/sysctl.c
patching file kernel/user_namespace.c
Applying patch aufs6-base.patch...
patching file MAINTAINERS
patching file drivers/block/loop.c
patching file fs/dcache.c
patching file fs/fcntl.c
patching file fs/namespace.c
patching file fs/splice.c
patching file include/linux/fs.h
patching file include/linux/lockdep.h
patching file include/linux/mnt_namespace.h
patching file include/linux/splice.h
patching file kernel/locking/lockdep.c
Applying patch aufs6-kbuild.patch...
patching file fs/Kconfig
patching file fs/Makefile
Applying patch aufs6-mmap.patch...
patching file fs/proc/base.c
Hunk #1 succeeded at 2272 (offset 59 lines).
patching file fs/proc/nommu.c
patching file fs/proc/task_mmu.c
patching file fs/proc/task_nommu.c
patching file include/linux/mm.h
patching file include/linux/mm_types.h
patching file kernel/fork.c
Hunk #1 succeeded at 737 (offset 4 lines).
patching file mm/Makefile
patching file mm/filemap.c
Hunk #1 succeeded at 3677 (offset 4 lines).
patching file mm/mmap.c
Hunk #7 FAILED at 3200.
Hunk #8 succeeded at 3558 (offset 4 lines).
Hunk #9 succeeded at 3572 (offset 4 lines).
1 out of 9 hunks FAILED -- saving rejects to file mm/mmap.c.rej
patching file mm/nommu.c
patching file mm/prfile.c
==> ERROR: A failure occurred in prepare().
    Aborting...```
sfjro commented 1 month ago

vladns:

patching file mm/mmap.c Hunk #7 FAILED at 3200. Hunk #8 succeeded at 3558 (offset 4 lines). Hunk #9 succeeded at 3572 (offset 4 lines). 1 out of 9 hunks FAILED -- saving rejects to file mm/mmap.c.rej

Thanks for the report. I guess this issue is same to PB's v6.11.2. Try aufs6.11.2 branch.

J. R. Okajima

vladns commented 1 month ago

Thanks, but there are still errors:


fs/aufs/hfsnotify.c: In function ‘au_hfsn_free_mark’:
./include/linux/container_of.h:20:54: error: ‘struct au_hnotify’ has no member named ‘hn_mark’
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
...
././include/linux/compiler_types.h:451:27: error: expression in static assertion is not an integer
  451 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
...
./include/linux/stddef.h:16:33: error: ‘struct au_hnotify’ has no member named ‘hn_mark’
   16 | #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
...
fs/aufs/hfsnotify.c:36:9: error: implicit declaration of function ‘au_cache_free_hnotify’; did you mean ‘au_cache_free_vdir’? [-Wimplicit-function-declaration]
   36 |         au_cache_free_hnotify(hn);
      |         ^~~~~~~~~~~~~~~~~~~~~
      |         au_cache_free_vdir
fs/aufs/hfsnotify.c: In function ‘au_hfsn_alloc’:
fs/aufs/hfsnotify.c:51:20: error: ‘struct au_hinode’ has no member named ‘hi_notify’
   51 |         hn = hinode->hi_notify;
      |                    ^~
fs/aufs/hfsnotify.c:52:16: error: ‘struct au_hnotify’ has no member named ‘hn_aufs_inode’
   52 |         sb = hn->hn_aufs_inode->i_sb;
      |                ^~
fs/aufs/hfsnotify.c:57:19: error: ‘struct au_hnotify’ has no member named ‘hn_mark’
   57 |         mark = &hn->hn_mark;
      |                   ^~
fs/aufs/hfsnotify.c: In function ‘au_hfsn_free’:
fs/aufs/hfsnotify.c:80:19: error: ‘struct au_hnotify’ has no member named ‘hn_mark’
   80 |         mark = &hn->hn_mark;
      |                   ^~
fs/aufs/hfsnotify.c: In function ‘au_hfsn_ctl’:
fs/aufs/hfsnotify.c:101:23: error: ‘struct au_hinode’ has no member named ‘hi_notify’
  101 |         mark = &hinode->hi_notify->hn_mark;
      |                       ^~
fs/aufs/hfsnotify.c: In function ‘au_hfsn_handle_event’:
./include/linux/container_of.h:20:54: error: ‘struct au_hnotify’ has no member named ‘hn_mark’
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
...
././include/linux/compiler_types.h:451:27: error: expression in static assertion is not an integer
  451 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
...
./include/linux/stddef.h:16:33: error: ‘struct au_hnotify’ has no member named ‘hn_mark’
   16 | #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
...
fs/aufs/hfsnotify.c:199:15: error: implicit declaration of function ‘au_hnotify’; did you mean ‘au_hnotify_fin’? [-Wimplicit-function-declaration]
  199 |         err = au_hnotify(h_dir, hnotify, mask, file_name, h_inode);
      |               ^~~~~~~~~~
      |               au_hnotify_fin
fs/aufs/hfsnotify.c: At top level:
fs/aufs/hfsnotify.c:280:14: error: variable ‘au_hnotify_op’ has initializer but incomplete type
  280 | const struct au_hnotify_op au_hnotify_op = {
      |              ^~~~~~~~~~~~~
fs/aufs/hfsnotify.c:281:10: error: ‘const struct au_hnotify_op’ has no member named ‘ctl’
  281 |         .ctl            = au_hfsn_ctl,
      |          ^~~
fs/aufs/hfsnotify.c:281:27: warning: excess elements in struct initializer
  281 |         .ctl            = au_hfsn_ctl,
      |                           ^~~~~~~~~~~
fs/aufs/hfsnotify.c:281:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:282:10: error: ‘const struct au_hnotify_op’ has no member named ‘alloc’
  282 |         .alloc          = au_hfsn_alloc,
      |          ^~~~~
fs/aufs/hfsnotify.c:282:27: warning: excess elements in struct initializer
  282 |         .alloc          = au_hfsn_alloc,
      |                           ^~~~~~~~~~~~~
fs/aufs/hfsnotify.c:282:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:283:10: error: ‘const struct au_hnotify_op’ has no member named ‘free’
  283 |         .free           = au_hfsn_free,
      |          ^~~~
fs/aufs/hfsnotify.c:283:27: warning: excess elements in struct initializer
  283 |         .free           = au_hfsn_free,
      |                           ^~~~~~~~~~~~
fs/aufs/hfsnotify.c:283:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:285:10: error: ‘const struct au_hnotify_op’ has no member named ‘fin’
  285 |         .fin            = au_hfsn_fin,
      |          ^~~
fs/aufs/hfsnotify.c:285:27: warning: excess elements in struct initializer
  285 |         .fin            = au_hfsn_fin,
      |                           ^~~~~~~~~~~
fs/aufs/hfsnotify.c:285:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:287:10: error: ‘const struct au_hnotify_op’ has no member named ‘reset_br’
  287 |         .reset_br       = au_hfsn_reset_br,
      |          ^~~~~~~~
fs/aufs/hfsnotify.c:287:27: warning: excess elements in struct initializer
  287 |         .reset_br       = au_hfsn_reset_br,
      |                           ^~~~~~~~~~~~~~~~
fs/aufs/hfsnotify.c:287:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:288:10: error: ‘const struct au_hnotify_op’ has no member named ‘fin_br’
  288 |         .fin_br         = au_hfsn_fin_br,
      |          ^~~~~~
fs/aufs/hfsnotify.c:288:27: warning: excess elements in struct initializer
  288 |         .fin_br         = au_hfsn_fin_br,
      |                           ^~~~~~~~~~~~~~
fs/aufs/hfsnotify.c:288:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:289:10: error: ‘const struct au_hnotify_op’ has no member named ‘init_br’
  289 |         .init_br        = au_hfsn_init_br
      |          ^~~~~~~
fs/aufs/hfsnotify.c:289:27: warning: excess elements in struct initializer
  289 |         .init_br        = au_hfsn_init_br
      |                           ^~~~~~~~~~~~~~~
fs/aufs/hfsnotify.c:289:27: note: (near initialization for ‘au_hnotify_op’)
fs/aufs/hfsnotify.c:280:28: error: storage size of ‘au_hnotify_op’ isn’t known
  280 | const struct au_hnotify_op au_hnotify_op = {
      |                            ^~~~~~~~~~~~~
make[4]: *** [scripts/Makefile.build:244: fs/aufs/hfsnotify.o] Error 1
make[3]: *** [scripts/Makefile.build:485: fs/aufs] Error 2
sfjro commented 1 month ago

vladns:

Thanks, but there are still errors: ::: fs/aufs/hfsnotify.c:36:9: error: implicit declaration of function =E2=80=98= au_cache_free_hnotify=E2=80=99; did you mean =E2=80=98au_cache_free_vdir=E2= =80=99? [-Wimplicit-function-declaration] 36 | au_cache_free_hnotify(hn); | ^~~~~ | au_cache_free_vdir fs/aufs/hfsnotify.c: In function =E2=80=98au_hfsn_alloc=E2=80=99: fs/aufs/hfsnotify.c:51:20: error: =E2=80=98struct au_hinode=E2=80=99 has = no member named =E2=80=98hi_notify=E2=80=99 51 | hn =3D hinode->hi_notify; | ^~

I'm afraid your kconfig is corrupted. How did you set CONFIG_AUFS_HNOTIFY or CONFIG_AUFS_HFSNOTIFY ?

vladns commented 1 month ago

In my config, there is only one setting, concerning aufs CONFIG_AUFS_FS=m. It is entered via a script, into the original config file. Where is this kconfig you are talking about located? Apparently this file is located at /build/linux/src/linux-6.11.3/fs/aufs/Kconfig. I compared it with the file at /build/aufs-standalone/fs/aufs/Kconfig using the cmp command, it didn't output anything. I didn't edit this file, it was just copied to the build location.

sfjro commented 1 month ago

vladns:

In my config, there is only one setting, concerning aufs CONFIG_AUFS_FS=m. It is entered via a script, into the original config file.

?? I don't understand why your build system compiled fs/aufs/hfsnotify.c.

In fs/aufs/Makefile, the file is described as aufs-$(CONFIG_AUFS_HFSNOTIFY) += hfsnotify.o which means hfsnotify.c is compiled only when CONFIG_AUFS_HFSNOTIFY is enabled. Who and how is it enabled?

J. R. Okajima

fulalas commented 1 month ago

I confirm kernel 6.11.3 builds just fine using AUFS branch 6.11.2.

vladns commented 1 month ago

Where should this CONFIG_AUFS_HFSNOTIFY setting be?

roadie2 commented 1 month ago

I found with kernel 6.11.2 as well as 6.11.4, that CONFIG_AUFS_HFSNOTIFY=y must be enabled in the kernel config. If it is disabled, the patches apply well, but I get the same errors as vladns. This is using aufs6-6.11.2 patchset.

With CONFIG_AUFS_HFSNOTIFY=y, the kernel builds and boots properly.

sfjro commented 1 month ago

roadie2:

I found with kernel 6.11.2 as well as 6.11.4, that CONFIG_AUFS_HFSNOTIFY=y must be enabled in the kernel config. If it is disabled, the patches apply well, but I get the same errors as vladns. This is using aufs6-6.11.2 patchset.

How do you configure? If you disable CONFIG_AUFS_HFSNOTIFY, then you need to disable CONFIG_AUFS_HNOTIFY too. Such compile error should not happen.

J. R. Okajima

sfjro commented 1 month ago

vladns:

Where should this CONFIG_AUFS_HFSNOTIFY setting be?

Where do you enable CONFIG_AUFS_FS? The place should be same.

J. R. Okajima

fulalas commented 1 month ago

@sfjro, do you mind explaining to us is what is the benefit of enabling CONFIG_AUFS_HNOTIFY and CONFIG_AUFS_HFSNOTIFY?

sfjro commented 1 month ago

fulalas:

@sfjro, do you mind explaining to us is what is the benefit of enabling CONFIG_AUFS_HNOTIFY and CONFIG_AUFS_HFSNOTIFY?

Isn't good enough ro read fs/aufs/Kconfig and aufs manual in aufs-util.git?

J. R. Okajima

fulalas commented 1 month ago

Maybe, but I don't have the links. I couldn't find anything here: https://aufs.sourceforge.net/aufs6/man.html

sfjro commented 1 month ago

fulalas:

Maybe, but I don't have the links. I couldn't find anything here: https://aufs.sourceforge.net/aufs6/man.html

Anything? Do you mean you got HTTP 404? Or do you mean you couldn't find the description of CONFIG_ brabra? Didn't fs/aufs/Kconfig help you?

J. R. Okajima

fulalas commented 1 month ago

Do you have any URL or could you provide the explanation to both CONFIG_AUFS_HNOTIFY and CONFIG_AUFS_HFSNOTIFY?

Thanks!

sfjro commented 1 month ago

fulalas:

Do you have any URL or could you provide the explanation to both CONFIG_AUFS_HNOTIFY and CONFIG_AUFS_HFSNOTIFY?

Before you repeate the same thing, you should answer what I have asked.


Isn't good enough ro read fs/aufs/Kconfig and aufs manual in aufs-util.git?

Anything? Do you mean you got HTTP 404? Or do you mean you couldn't find the description of CONFIG_ brabra? Didn't fs/aufs/Kconfig help you?

J. R. Okajima

fulalas commented 1 month ago

It's not a 404 -- the link opens but I couldn't find anything useful regarding these 2 things, even outside the link (i.e. google).

It looks like you also can't find anything specific, but that's OK. I was just curious. :)

sfjro commented 1 month ago

fulalas:

It's not a 404 -- the link opens but I couldn't find anything useful regarding these 2 things, even outside the link (i.e. google).

It looks like you also can't find anything specific, but that's OK. I was just curious. :)

I hope you would understand them after reading fs/aufs/Kconfig, and find what you want in aufs manual.

J. R. Okajima

fulalas commented 1 month ago

Sorry, no link, no progress.

Edit: found it: https://github.com/sfjro/aufs-standalone/blob/fa57952dbe2cf4f8ffd852545b9005b17305a444/fs/aufs/Kconfig#L55

vladns commented 1 month ago

If I don't explicitly change these settings, what are their default values?

sfjro commented 1 month ago

vladns:

If I don't explicitly change these settings, what are their default values?

Once you read fs/aufs/Kconfig, you would know there is no default value for them. It means "no" or "" (empty). It is recommended to read and understand about the configuration.

J. R. Okajima

vladns commented 1 month ago

Unfortunately, I am not an expert and I do not understand much. I just follow the instructions. I have never changed these values. The last kernel that built normally for me was 6.10.10. Then my archlinux switched to 6.11.2, after that the problems began.

vladns commented 1 month ago

I found with kernel 6.11.2 as well as 6.11.4, that CONFIG_AUFS_HFSNOTIFY=y must be enabled in the kernel config. If it is disabled, the patches apply well, but I get the same errors as vladns. This is using aufs6-6.11.2 patchset.

With CONFIG_AUFS_HFSNOTIFY=y, the kernel builds and boots properly.

This doesn't help me, the error is the same.

sfjro commented 1 month ago

vladns:

Unfortunately, I am not an expert and I do not understand much. I just follow the instructions. I have never changed these values. The last kernel that built normally for me was 6.10.10. Then my archlinux switched to 6.11.2, after that the problems began.

What is "the problems" you call here? Compile error in fs/aufs/hfsnotify.c?

fs/aufs/hfsnotify.c: In function =E2=80=98au_hfsn_free_mark=E2=80=99: ./include/linux/container_of.h:20:54: error: =E2=80=98struct au_hnotify=E2= =80=99 has no member named =E2=80=98hn_mark=E2=80=99 20 | static_assert(__same_type((ptr), ((type )0)->member) ||= \ ...

What is "the instructions" you call here?

J. R. Okajima

vladns commented 1 month ago

Compile error in fs/aufs/hfsnotify.c?

Yes.

What is "the instructions" you call here?

From the readme, here it is: For aufs-standalone tree, There are several ways to build.

1. and so on. My build is successful if I explicitly specify "CONFIG_AUFS_HFSNOTIFY=y" and "CONFIG_AUFS_HNOTIFY=y" in the linux config file.

sfjro commented 1 month ago

vladns:

My build is successful if I explicitly specify "CONFIG_AUFS_HFSNOTIFY=y" and "CONFIG_AUFS_HNOTIFY=y" in the linux config file.

And you want to disable them, right? How is your .config after you disable them? Try "fgrep AUFS .config".

J. R. Okajima

vladns commented 1 month ago

And you want to disable them, right?

Yes, I turned it off, the same errors occurred.

CONFIG_AUFS_FS=m
CONFIG_AUFS_BRANCH_MAX_127=y
# CONFIG_AUFS_BRANCH_MAX_511 is not set
# CONFIG_AUFS_BRANCH_MAX_1023 is not set
# CONFIG_AUFS_BRANCH_MAX_32767 is not set
CONFIG_AUFS_SBILIST=y
# CONFIG_AUFS_HNOTIFY is not set
CONFIG_AUFS_HFSNOTIFY=y
# CONFIG_AUFS_EXPORT is not set
# CONFIG_AUFS_XATTR is not set
# CONFIG_AUFS_FHSM is not set
# CONFIG_AUFS_RDU is not set
# CONFIG_AUFS_DIRREN is not set
# CONFIG_AUFS_SHWH is not set
# CONFIG_AUFS_BR_RAMFS is not set
# CONFIG_AUFS_BR_FUSE is not set
CONFIG_AUFS_BR_HFSPLUS=y
CONFIG_AUFS_BDEV_LOOP=y
# CONFIG_AUFS_DEBUG is not set

Here "CONFIG_AUFS_HFSNOTIFY=n" and "CONFIG_AUFS_HNOTIFY=n" in config, although I see that CONFIG_AUFS_HFSNOTIFY=y.

sfjro commented 1 month ago

vladns:

Yes, I turned it off, the same errors occurred. :::

CONFIG_AUFS_HNOTIFY is not set

CONFIG_AUFS_HFSNOTIFY=y :::

Now I see the configuration is wrong. Hmm, linux-v6.11-rc1 seems got changed. Try this patch plz.

J. R. Okajima

diff --git a/fs/aufs/Kconfig b/fs/aufs/Kconfig index a5008b87a55f..f6434a7da911 100644 --- a/fs/aufs/Kconfig +++ b/fs/aufs/Kconfig @@ -62,13 +62,15 @@ config AUFS_HNOTIFY It will have a negative impact to the performance. See detail in aufs.5.

+if AUFS_HNOTIFY choice

vladns commented 1 month ago

Yes, the kernel build is successful.

sfjro commented 1 month ago

vladns:

Yes, the kernel build is successful.

Thanks for the test. The patch will be included in next release.

J. R. Okajima

sfjro commented 1 month ago

------- Blind-Carbon-Copy

From: "J. R. Okajima" @.> To: @. Subject: aufs6 GIT release (v6.12-rc4) MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: @.> Date: Mon, 28 Oct 2024 00:23:03 +0900 Message-ID: @.>

o news

o misc

J. R. Okajima


------- End of Blind-Carbon-Copy

fulalas commented 1 month ago

Hi, @sfjro. :)

Using branch 6.11.2 I'm having this compilation error compiling kernel 6.11.4 or 6.11.5:

fs/aufs/dynop.c:149:18: error: ‘cnt’ undeclared (first use in this function); did you mean ‘int’?
  149 |         DyDbgInc(cnt);   
sfjro commented 1 month ago

fulalas:

With the current 6.11.2 I'm having this compilation error:


fs/aufs/dynop.c:149:18: error: =E2=80=98cnt=E2=80=99 undeclared (first us=
e in this function); did you mean =E2=80=98int=E2=80=99?
  149 |         DyDbgInc(cnt);   =

Plz describe how do you get and compile aufs.

J. R. Okajima

peabee commented 1 month ago

Using Puppy Linux Woof-CE kernel-kit: https://github.com/puppylinux-woof-CE/woof-CE/blob/testing/kernel-kit/build.sh

I also see a build fail with both 6.6 and 6.11: 6.6.59 with aufs=6.6.54 & gcc (Debian 12.2.0-14) 12.2.0:

fs/aufs/dynop.c: In function 'dy_gadd':
fs/aufs/dynop.c:25:44: warning: passing argument 1 of 'AuDbgSym' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   25 | #define DyPrSym(key)    AuDbgSym(key->dk_op.dy_hop)
      |                                            ^
fs/aufs/dynop.c:107:17: note: in expansion of macro 'DyPrSym'
  107 |                 DyPrSym(key);
      |                 ^~~~~~~
fs/aufs/debug.h:201:28: note: expected 'void *' but argument is of type 'const void *'
  201 | AuStubVoid(AuDbgSym, void *addr)
      |                      ~~~~~~^~~~
fs/aufs/aufs.h:29:33: note: in definition of macro 'AuStub'
   29 |         static inline type name(__VA_ARGS__) { body; }
      |                                 ^~~~~~~~~~~
fs/aufs/debug.h:201:1: note: in expansion of macro 'AuStubVoid'
  201 | AuStubVoid(AuDbgSym, void *addr)
      | ^~~~~~~~~~
fs/aufs/dynop.c: In function 'dy_free_rcu':
fs/aufs/dynop.c:25:44: warning: passing argument 1 of 'AuDbgSym' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   25 | #define DyPrSym(key)    AuDbgSym(key->dk_op.dy_hop)
      |                                            ^
fs/aufs/dynop.c:116:9: note: in expansion of macro 'DyPrSym'
  116 |         DyPrSym(key);
      |         ^~~~~~~
fs/aufs/debug.h:201:28: note: expected 'void *' but argument is of type 'const void *'
  201 | AuStubVoid(AuDbgSym, void *addr)
      |                      ~~~~~~^~~~
fs/aufs/aufs.h:29:33: note: in definition of macro 'AuStub'
   29 |         static inline type name(__VA_ARGS__) { body; }
      |                                 ^~~~~~~~~~~
fs/aufs/debug.h:201:1: note: in expansion of macro 'AuStubVoid'
  201 | AuStubVoid(AuDbgSym, void *addr)
      | ^~~~~~~~~~
fs/aufs/dynop.c: In function 'dy_aop':
fs/aufs/dynop.c:149:18: error: 'cnt' undeclared (first use in this function); did you mean 'int'?
  149 |         DyDbgInc(cnt);                                                  \
      |                  ^~~
fs/aufs/dynop.c:165:9: note: in expansion of macro 'DySet'
  165 |         DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb)
      |         ^~~~~
fs/aufs/dynop.c:178:9: note: in expansion of macro 'DySetAop'
  178 |         DySetAop(writepage);
      |         ^~~~~~~~
fs/aufs/dynop.c:149:18: note: each undeclared identifier is reported only once for each function it appears in
  149 |         DyDbgInc(cnt);                                                  \
      |                  ^~~
fs/aufs/dynop.c:165:9: note: in expansion of macro 'DySet'
  165 |         DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb)
      |         ^~~~~
fs/aufs/dynop.c:178:9: note: in expansion of macro 'DySetAop'
  178 |         DySetAop(writepage);
      |         ^~~~~~~~
make[4]: *** [scripts/Makefile.build:243: fs/aufs/dynop.o] Error 1
make[3]: *** [scripts/Makefile.build:480: fs/aufs] Error 2
make[3]: *** Waiting for unfinished jobs....

6.11.6 with aufs=6.11.2 & gcc-14.2.0 (GCC) 14.2.0:

  CC [M]  net/llc/af_llc.o
fs/aufs/dynop.c: In function ‘dy_gadd’:
fs/aufs/dynop.c:25:44: warning: passing argument 1 of ‘AuDbgSym’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   25 | #define DyPrSym(key)    AuDbgSym(key->dk_op.dy_hop)
      |                                            ^
fs/aufs/dynop.c:107:17: note: in expansion of macro ‘DyPrSym’
  107 |                 DyPrSym(key);
      |                 ^~~~~~~
fs/aufs/debug.h:201:28: note: expected ‘void *’ but argument is of type ‘const void *’
  201 | AuStubVoid(AuDbgSym, void *addr)
      |                      ~~~~~~^~~~
fs/aufs/aufs.h:29:33: note: in definition of macro ‘AuStub’
   29 |         static inline type name(__VA_ARGS__) { body; }
      |                                 ^~~~~~~~~~~
fs/aufs/debug.h:201:1: note: in expansion of macro ‘AuStubVoid’
  201 | AuStubVoid(AuDbgSym, void *addr)
      | ^~~~~~~~~~
fs/aufs/dynop.c: In function ‘dy_free_rcu’:
fs/aufs/dynop.c:25:44: warning: passing argument 1 of ‘AuDbgSym’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   25 | #define DyPrSym(key)    AuDbgSym(key->dk_op.dy_hop)
      |                                            ^
fs/aufs/dynop.c:116:9: note: in expansion of macro ‘DyPrSym’
  116 |         DyPrSym(key);
      |         ^~~~~~~
fs/aufs/debug.h:201:28: note: expected ‘void *’ but argument is of type ‘const void *’
  201 | AuStubVoid(AuDbgSym, void *addr)
      |                      ~~~~~~^~~~
fs/aufs/aufs.h:29:33: note: in definition of macro ‘AuStub’
   29 |         static inline type name(__VA_ARGS__) { body; }
      |                                 ^~~~~~~~~~~
fs/aufs/debug.h:201:1: note: in expansion of macro ‘AuStubVoid’
  201 | AuStubVoid(AuDbgSym, void *addr)
      | ^~~~~~~~~~
  AR      drivers/nvme/target/built-in.a
fs/aufs/dynop.c: In function ‘dy_aop’:
fs/aufs/dynop.c:149:18: error: ‘cnt’ undeclared (first use in this function); did you mean ‘int’?
  149 |         DyDbgInc(cnt);                                                  \
      |                  ^~~
fs/aufs/dynop.c:165:9: note: in expansion of macro ‘DySet’
  165 |         DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb)
      |         ^~~~~
fs/aufs/dynop.c:178:9: note: in expansion of macro ‘DySetAop’
  178 |         DySetAop(writepage);
      |         ^~~~~~~~
fs/aufs/dynop.c:149:18: note: each undeclared identifier is reported only once for each function it appears in
  149 |         DyDbgInc(cnt);                                                  \
      |                  ^~~
fs/aufs/dynop.c:165:9: note: in expansion of macro ‘DySet’
  165 |         DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb)
      |         ^~~~~
fs/aufs/dynop.c:178:9: note: in expansion of macro ‘DySetAop’
  178 |         DySetAop(writepage);
      |         ^~~~~~~~
  CC [M]  drivers/nvme/target/core.o
make[4]: *** [scripts/Makefile.build:244: fs/aufs/dynop.o] Error 1
make[3]: *** [scripts/Makefile.build:485: fs/aufs] Error 2
make[3]: *** Waiting for unfinished jobs....
sfjro commented 1 month ago

PB:

I also see a build fail with both 6.6 and 6.11:

I have to write the same thing. Plz describe how do you get and compile aufs.

J. R. Okajima

peabee commented 1 month ago

Hi JRO As described above I use the Puppy Linux Woof-CE kernel kit which downloads aufs from Github. It is then compiled with gcc. This is an unchanged process which has worked correctly for many years. If you need further details please specify what you need to know and I will try my best to provide information.

sfjro commented 1 month ago

PB:

As described above I use the Puppy Linux Woof-CE kernel kit which downloads aufs from Github. It is then compiled with gcc. This is an unchanged process which has worked correctly for many years. If you need further details please specify what you need to know and I will try my best to provide information.

?? What is "described above" you call? Where can I get "Puppy Linux Woof-CE kernel kit"?

I need to know

J. R. Okajima

peabee commented 1 month ago

Link is above.....

https://github.com/puppylinux-woof-CE/woof-CE/blob/370a07377bf17d22a0046ca98f6f2fcc82febac3/kernel-kit/build.sh#L240

aufs_git_6="https://github.com/sfjro/aufs-standalone.git"

https://github.com/puppylinux-woof-CE/woof-CE/blob/370a07377bf17d22a0046ca98f6f2fcc82febac3/kernel-kit/build.sh#L425

git clone ${aufs_git} ${aufs_git_dir}

sfjro commented 1 month ago

PB:

Link is above.....

I see nothing what you call "above"... Anyway what will hapeen if you revert fs/aufs/dynop.c from a63b5d101 2024-10-21 aufs: tiny, use Stub macro for the empty functions

Also it maybe worth to try reverting fs/aufs/dynop.c from 26c48f068 2024-10-28 aufs: minor, support disabling CONFIG_AUFS_DEBUG e6ed4b0bd 2024-10-28 aufs: tiny, use Stub macro for the empty functions

J. R. Okajima

peabee commented 1 month ago

Link is on Github - was added as an edit so will not be in the email.

I will try the revert on 6.11.6

fulalas commented 1 month ago

I found the offending line: https://github.com/sfjro/aufs-standalone/blob/d17f1d0d0afe07a6ca4d1fc26daad467a42c53dc/fs/aufs/dynop.c#L145

Reverting it to this fixes the issue:

#define DyDbgInc(cnt)       do {} while (0)

Thanks!

peabee commented 1 month ago

Confirmed - reverting line 145 of dynop.c allows successful build of 6.11.6

sfjro commented 1 month ago

PB:

Cofirmed - reverting line 145 of dynop.c allows successful build of 6.11.6

PB and fulalas, thanks for the test and report. And instead of reverting, please try this commit which is a part of next Monday release.

J. R. Okajima

commit e6ed4b0bd5638c5d19954cd12f4d239224fc54c9 Author: J. R. Okajima @.***> Date: Mon Oct 21 09:41:55 2024 +0900

aufs: tiny, use Stub macro for the empty functions

Just to make scripts/checkpatch silence.

Signed-off-by: J. R. Okajima ***@***.***>

diff --git a/fs/aufs/dynop.c b/fs/aufs/dynop.c index 59cac6bca..441f61b21 100644 --- a/fs/aufs/dynop.c +++ b/fs/aufs/dynop.c @@ -124,11 +124,10 @@ void au_dy_put(struct au_dykey *key)

define DyDbgSize(cnt, op) AuDebugOn(cnt != sizeof(op)/sizeof(void *))

+#define DyDbgDeclare(cnt) unsigned int cnt __maybe_unused = 0

ifdef CONFIG_AUFS_DEBUG

-#define DyDbgDeclare(cnt) unsigned int cnt = 0

define DyDbgInc(cnt) do { cnt++; } while (0)

else

-#define DyDbgDeclare(cnt) do {} while (0) AuStubVoid(DyDbgInc, unsigned int cnt __maybe_unused);

endif

commit 26c48f068115c51206f41b43d731ba7952126af3 Author: J. R. Okajima @.***> Date: Mon Oct 28 22:52:13 2024 +0900

aufs: minor, support disabling CONFIG_AUFS_DEBUG

Signed-off-by: J. R. Okajima ***@***.***>

diff --git a/fs/aufs/dynop.c b/fs/aufs/dynop.c index 441f61b21..32a147259 100644 --- a/fs/aufs/dynop.c +++ b/fs/aufs/dynop.c @@ -9,7 +9,7 @@

include "aufs.h"

-#define DyPrSym(key) AuDbgSym(key->dk_op.dy_hop) +#define DyPrSym(key) AuDbgSym((void*)(key->dk_op.dy_hop))

/*

fulalas commented 1 month ago

Yes, it works. Here's the actual patch:

dynop.txt

Thanks, @sfjro!

sfjro commented 1 month ago

PB:

Link is on Github - was added as an edit so will not be in the email.

I see. I was wondering why with staring at the ceiling of my apartment.

J. R. Okajima

sfjro commented 4 weeks ago

------- Blind-Carbon-Copy

From: "J. R. Okajima" @.> To: @. Subject: aufs6 GIT release (v6.12-rc5) MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: @.> Date: Mon, 04 Nov 2024 00:23:16 +0900 Message-ID: @.>

o news

J. R. Okajima


------- End of Blind-Carbon-Copy

peabee commented 4 weeks ago

Many thanks JRO Confirmed - k6.6 now builds correctly: https://github.com/puppylinux-woof-CE/woof-CE/actions/runs/11622768817