Trying to compile SCST for SLES 15 (kernel 4.12.14-150.35) but failed to comiple with error.
make[1]: Entering directory '/usr/src/scst/scst/src'
make -C /lib/modules/4.12.14-150.35-default/build M=/usr/src/scst/scst/src BUILD_DEV=m
make[2]: Entering directory '/usr/src/linux-4.12.14-150.35-obj/x86_64/default'
LD /usr/src/scst/scst/src/built-in.o
CC [M] /usr/src/scst/scst/src/scst_main.o
In file included from /usr/src/scst/scst/src/../include/scst.h:65:0,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/scst/scst/src/../include/backport.h: In function ‘bioset_create_backport’:
/usr/src/scst/scst/src/../include/backport.h:103:9: error: too few arguments to function ‘bioset_create’
return bioset_create(pool_size, front_pad);
^~~~~~~~~~~~~
In file included from /usr/src/linux-4.12.14-150.35/include/linux/blkdev.h:20:0,
from /usr/src/scst/scst/src/../include/scst.h:38,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/linux-4.12.14-150.35/include/linux/bio.h:390:24: note: declared here
extern struct bio_set bioset_create(unsigned int, unsigned int, int flags);
^~~~~~~~~~~~~
/usr/src/scst/scst/src/../include/backport.h: At top level:
/usr/src/linux-4.12.14-150.35/include/linux/bio.h:499:1: error: expected identifier or ‘(’ before ‘do’
do { \
^
/usr/src/scst/scst/src/../include/backport.h:111:20: note: in expansion of macro ‘bio_set_dev’
static inline void bio_set_dev(struct bio bio, struct block_device bdev)
^~~~~~~~~~~
/usr/src/linux-4.12.14-150.35/include/linux/bio.h:504:3: error: expected identifier or ‘(’ before ‘while’
} while (0)
^
/usr/src/scst/scst/src/../include/backport.h:111:20: note: in expansion of macro ‘bio_set_dev’
static inline void bio_set_dev(struct bio bio, struct block_device *bdev)
^~~~~~~~~~~
In file included from /usr/src/scst/scst/src/../include/scst.h:65:0,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/scst/scst/src/../include/backport.h:469:0: warning: "IOCB_NOWAIT" redefined
#define IOCB_NOWAIT 0
In file included from /usr/src/linux-4.12.14-150.35/include/linux/seq_file.h:10:0,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/consumer.h:17,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/devinfo.h:21,
from /usr/src/linux-4.12.14-150.35/include/linux/device.h:24,
from /usr/src/linux-4.12.14-150.35/include/linux/genhd.h:64,
from /usr/src/linux-4.12.14-150.35/include/linux/blkdev.h:10,
from /usr/src/scst/scst/src/../include/scst.h:38,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/linux-4.12.14-150.35/include/linux/fs.h:292:0: note: this is the location of the previous definition
#define IOCB_NOWAIT (1 << 7)
In file included from /usr/src/scst/scst/src/../include/scst.h:65:0,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/scst/scst/src/../include/backport.h: In function ‘kernel_write_backport’:
/usr/src/scst/scst/src/../include/backport.h:492:40: warning: passing argument 4 of ‘kernel_write’ makes pointer from integer without a cast [-Wint-conversion]
return kernel_write(file, buf, count, pos);
^
In file included from /usr/src/linux-4.12.14-150.35/include/linux/seq_file.h:10:0,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/consumer.h:17,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/devinfo.h:21,
from /usr/src/linux-4.12.14-150.35/include/linux/device.h:24,
from /usr/src/linux-4.12.14-150.35/include/linux/genhd.h:64,
from /usr/src/linux-4.12.14-150.35/include/linux/blkdev.h:10,
from /usr/src/scst/scst/src/../include/scst.h:38,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/linux-4.12.14-150.35/include/linux/fs.h:2807:16: note: expected ‘loff_t * {aka long long int }’ but argument is of type ‘loff_t {aka long long int}’
extern ssize_t kernel_write(struct file , const char , size_t, loff_t );
^~~~~~~~~~~~
In file included from /usr/src/scst/scst/src/scst_main.c:37:0:
/usr/src/scst/scst/src/../include/scst.h: At top level:
/usr/src/scst/scst/src/../include/scst.h:5398:9: error: unknown type name ‘wait_queue_t’; did you mean ‘wait_event’?
wait_queue_t wait, int state)
^~~~~~~~~~~~
wait_event
make[5]: *** [/usr/src/linux-4.12.14-150.35/scripts/Makefile.build:325: /usr/src/scst/scst/src/scst_main.o] Error 1
make[4]: *** [/usr/src/linux-4.12.14-150.35/Makefile:1569: module/usr/src/scst/scst/src] Error 2
make[3]: *** [Makefile:152: sub-make] Error 2
make[2]: *** [Makefile:24: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/linux-4.12.14-150.35-obj/x86_64/default'
make[1]: *** [Makefile:114: all] Error 2
make[1]: Leaving directory '/usr/src/scst/scst/src'
make: *** [Makefile:36: all] Error 2
Question,
Does SCST supported in SLES 15 ?
Trying to compile SCST for SLES 15 (kernel 4.12.14-150.35) but failed to comiple with error.
make[1]: Entering directory '/usr/src/scst/scst/src'
make -C /lib/modules/4.12.14-150.35-default/build M=/usr/src/scst/scst/src BUILD_DEV=m
make[2]: Entering directory '/usr/src/linux-4.12.14-150.35-obj/x86_64/default'
LD /usr/src/scst/scst/src/built-in.o
CC [M] /usr/src/scst/scst/src/scst_main.o
In file included from /usr/src/scst/scst/src/../include/scst.h:65:0,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/scst/scst/src/../include/backport.h: In function ‘bioset_create_backport’:
/usr/src/scst/scst/src/../include/backport.h:103:9: error: too few arguments to function ‘bioset_create’
return bioset_create(pool_size, front_pad);
^~~~~~~~~~~~~
In file included from /usr/src/linux-4.12.14-150.35/include/linux/blkdev.h:20:0,
from /usr/src/scst/scst/src/../include/scst.h:38,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/linux-4.12.14-150.35/include/linux/bio.h:390:24: note: declared here
extern struct bio_set bioset_create(unsigned int, unsigned int, int flags);
^~~~~~~~~~~~~
/usr/src/scst/scst/src/../include/backport.h: At top level:
/usr/src/linux-4.12.14-150.35/include/linux/bio.h:499:1: error: expected identifier or ‘(’ before ‘do’
do { \
^
/usr/src/scst/scst/src/../include/backport.h:111:20: note: in expansion of macro ‘bio_set_dev’
static inline void bio_set_dev(struct bio bio, struct block_device bdev)
^~~~~~~~~~~
/usr/src/linux-4.12.14-150.35/include/linux/bio.h:504:3: error: expected identifier or ‘(’ before ‘while’
} while (0)
^
/usr/src/scst/scst/src/../include/backport.h:111:20: note: in expansion of macro ‘bio_set_dev’
static inline void bio_set_dev(struct bio bio, struct block_device *bdev)
^~~~~~~~~~~
In file included from /usr/src/scst/scst/src/../include/scst.h:65:0,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/scst/scst/src/../include/backport.h:469:0: warning: "IOCB_NOWAIT" redefined
define IOCB_NOWAIT 0
In file included from /usr/src/linux-4.12.14-150.35/include/linux/seq_file.h:10:0,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/consumer.h:17,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/devinfo.h:21,
from /usr/src/linux-4.12.14-150.35/include/linux/device.h:24,
from /usr/src/linux-4.12.14-150.35/include/linux/genhd.h:64,
from /usr/src/linux-4.12.14-150.35/include/linux/blkdev.h:10,
from /usr/src/scst/scst/src/../include/scst.h:38,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/linux-4.12.14-150.35/include/linux/fs.h:292:0: note: this is the location of the previous definition
define IOCB_NOWAIT (1 << 7)
In file included from /usr/src/scst/scst/src/../include/scst.h:65:0,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/scst/scst/src/../include/backport.h: In function ‘kernel_write_backport’:
/usr/src/scst/scst/src/../include/backport.h:492:40: warning: passing argument 4 of ‘kernel_write’ makes pointer from integer without a cast [-Wint-conversion]
return kernel_write(file, buf, count, pos);
^
In file included from /usr/src/linux-4.12.14-150.35/include/linux/seq_file.h:10:0,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/consumer.h:17,
from /usr/src/linux-4.12.14-150.35/include/linux/pinctrl/devinfo.h:21,
from /usr/src/linux-4.12.14-150.35/include/linux/device.h:24,
from /usr/src/linux-4.12.14-150.35/include/linux/genhd.h:64,
from /usr/src/linux-4.12.14-150.35/include/linux/blkdev.h:10,
from /usr/src/scst/scst/src/../include/scst.h:38,
from /usr/src/scst/scst/src/scst_main.c:37:
/usr/src/linux-4.12.14-150.35/include/linux/fs.h:2807:16: note: expected ‘loff_t * {aka long long int }’ but argument is of type ‘loff_t {aka long long int}’
extern ssize_t kernel_write(struct file , const char , size_t, loff_t );
^~~~~~~~~~~~
In file included from /usr/src/scst/scst/src/scst_main.c:37:0:
/usr/src/scst/scst/src/../include/scst.h: At top level:
/usr/src/scst/scst/src/../include/scst.h:5398:9: error: unknown type name ‘wait_queue_t’; did you mean ‘wait_event’?
wait_queue_t wait, int state)
^~~~~~~~~~~~
wait_event
make[5]: [/usr/src/linux-4.12.14-150.35/scripts/Makefile.build:325: /usr/src/scst/scst/src/scst_main.o] Error 1
make[4]: [/usr/src/linux-4.12.14-150.35/Makefile:1569: module/usr/src/scst/scst/src] Error 2
make[3]: [Makefile:152: sub-make] Error 2
make[2]: [Makefile:24: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/linux-4.12.14-150.35-obj/x86_64/default'
make[1]: [Makefile:114: all] Error 2
make[1]: Leaving directory '/usr/src/scst/scst/src'
make: [Makefile:36: all] Error 2
Question,
Does SCST supported in SLES 15 ?
A totally untested patch that makes SCST build cleanly on SLES 15 has been checked in on the trunk.
Thanks BArt Van. I have checkout r8588 and now it is compiling trunk. Will test and post result.