[SOLVED] OperaFS - The 3DO CD format kernel module
by Jeebizz from LinuxQuestions.org on (#6JDA2)
This is a very obscure CD filesystem, and I was surprised to even find someone that has decided to update this, the original project was built around the 2.x Linux kernel. I downloaded the source, I'm running Slackware15 , so the kernel is 5.15, however I cannot compile it as it errors out:
Code:slackuser@slackmachine:~/source/OperaFS-main$ make
make -C src
make[1]: Entering directory '/home/slackuser/source/OperaFS-main/src'
make -C /lib/modules/5.15.94/build M=$PWD modules
make[2]: Entering directory '/usr/src/linux-5.15.94'
CC [M] /home/slackuser/source/OperaFS-main/src/address.o
/home/slackuser/source/OperaFS-main/src/address.c:28:55: warning: struct folio' declared inside parameter list will not be visible outside of this definition or declaration
28 | static int opera_read_folio(struct file *file, struct folio *folio);
| ^~~~~
/home/slackuser/source/OperaFS-main/src/address.c:37:10: error: struct address_space_operations' has no member named read_folio'
37 | .read_folio = opera_read_folio,
| ^~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:37:23: error: initialization of int (*)(struct page *, struct writeback_control *)' from incompatible pointer type int (*)(struct file *, struct folio *)' [-Werror=incompatible-pointer-types]
37 | .read_folio = opera_read_folio,
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:37:23: note: (near initialization for opera_address_operations.writepage')
/home/slackuser/source/OperaFS-main/src/address.c:46:44: warning: struct folio' declared inside parameter list will not be visible outside of this definition or declaration
46 | opera_read_folio(struct file *file, struct folio *folio)
| ^~~~~
/home/slackuser/source/OperaFS-main/src/address.c:46:1: error: conflicting types for opera_read_folio'; have int(struct file *, struct folio *)'
46 | opera_read_folio(struct file *file, struct folio *folio)
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:28:12: note: previous declaration of opera_read_folio' with type int(struct file *, struct folio *)'
28 | static int opera_read_folio(struct file *file, struct folio *folio);
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c: In function opera_read_folio':
/home/slackuser/source/OperaFS-main/src/address.c:49:16: error: implicit declaration of function block_read_full_folio'; did you mean block_read_full_page'? [-Werror=implicit-function-declaration]
49 | return block_read_full_folio(folio, opera_get_block);
| ^~~~~~~~~~~~~~~~~~~~~
| block_read_full_page
/home/slackuser/source/OperaFS-main/src/address.c: At top level:
/home/slackuser/source/OperaFS-main/src/address.c:28:12: warning: opera_read_folio' used but never defined
28 | static int opera_read_folio(struct file *file, struct folio *folio);
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:46:1: warning: opera_read_folio' defined but not used [-Wunused-function]
46 | opera_read_folio(struct file *file, struct folio *folio)
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:289: /home/slackuser/source/OperaFS-main/src/address.o] Error 1
make[2]: *** [Makefile:1903: /home/slackuser/source/OperaFS-main/src] Error 2
make[2]: Leaving directory '/usr/src/linux-5.15.94'
make[1]: *** [Makefile:6: all] Error 2
make[1]: Leaving directory '/home/slackuser/source/OperaFS-main/src'
make: *** [Makefile:9: src] Error 2
slackuser@slackmachine:~/source/OperaFS-main$Anyone else have any luck compiling this? I happen to have some 3DO discs I'd like to poke around at if I can get this kernel module to compile...
Code:slackuser@slackmachine:~/source/OperaFS-main$ make
make -C src
make[1]: Entering directory '/home/slackuser/source/OperaFS-main/src'
make -C /lib/modules/5.15.94/build M=$PWD modules
make[2]: Entering directory '/usr/src/linux-5.15.94'
CC [M] /home/slackuser/source/OperaFS-main/src/address.o
/home/slackuser/source/OperaFS-main/src/address.c:28:55: warning: struct folio' declared inside parameter list will not be visible outside of this definition or declaration
28 | static int opera_read_folio(struct file *file, struct folio *folio);
| ^~~~~
/home/slackuser/source/OperaFS-main/src/address.c:37:10: error: struct address_space_operations' has no member named read_folio'
37 | .read_folio = opera_read_folio,
| ^~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:37:23: error: initialization of int (*)(struct page *, struct writeback_control *)' from incompatible pointer type int (*)(struct file *, struct folio *)' [-Werror=incompatible-pointer-types]
37 | .read_folio = opera_read_folio,
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:37:23: note: (near initialization for opera_address_operations.writepage')
/home/slackuser/source/OperaFS-main/src/address.c:46:44: warning: struct folio' declared inside parameter list will not be visible outside of this definition or declaration
46 | opera_read_folio(struct file *file, struct folio *folio)
| ^~~~~
/home/slackuser/source/OperaFS-main/src/address.c:46:1: error: conflicting types for opera_read_folio'; have int(struct file *, struct folio *)'
46 | opera_read_folio(struct file *file, struct folio *folio)
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:28:12: note: previous declaration of opera_read_folio' with type int(struct file *, struct folio *)'
28 | static int opera_read_folio(struct file *file, struct folio *folio);
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c: In function opera_read_folio':
/home/slackuser/source/OperaFS-main/src/address.c:49:16: error: implicit declaration of function block_read_full_folio'; did you mean block_read_full_page'? [-Werror=implicit-function-declaration]
49 | return block_read_full_folio(folio, opera_get_block);
| ^~~~~~~~~~~~~~~~~~~~~
| block_read_full_page
/home/slackuser/source/OperaFS-main/src/address.c: At top level:
/home/slackuser/source/OperaFS-main/src/address.c:28:12: warning: opera_read_folio' used but never defined
28 | static int opera_read_folio(struct file *file, struct folio *folio);
| ^~~~~~~~~~~~~~~~
/home/slackuser/source/OperaFS-main/src/address.c:46:1: warning: opera_read_folio' defined but not used [-Wunused-function]
46 | opera_read_folio(struct file *file, struct folio *folio)
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:289: /home/slackuser/source/OperaFS-main/src/address.o] Error 1
make[2]: *** [Makefile:1903: /home/slackuser/source/OperaFS-main/src] Error 2
make[2]: Leaving directory '/usr/src/linux-5.15.94'
make[1]: *** [Makefile:6: all] Error 2
make[1]: Leaving directory '/home/slackuser/source/OperaFS-main/src'
make: *** [Makefile:9: src] Error 2
slackuser@slackmachine:~/source/OperaFS-main$Anyone else have any luck compiling this? I happen to have some 3DO discs I'd like to poke around at if I can get this kernel module to compile...