[Home]

Summary:DAHLIN-00366: DAHDI 3.0.0 + CentOS 7 = "error: conflicting types for ‘timer_setup’"
Reporter:Benjamin M. (devnullzero)Labels:
Date Opened:2018-12-16 00:15:21.000-0600Date Closed:2019-01-31 10:18:18.000-0600
Priority:MajorRegression?
Status:Closed/CompleteComponents:General
Versions:3.0.0 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Linux 3.10.0-957.1.3.el7.x86_64 #1 SMP x86_64 GNU/Linux Attachments:
Description:When compiling DAHDI 3.0.0 on CentOS 7, I'm getting the following error:

# make
make -C linux all
make[1]: Entering directory `/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux'
make -C drivers/dahdi/firmware firmware-loaders
make[2]: Entering directory `/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/firmware'
make[2]: Leaving directory `/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/firmware'
make -C /lib/modules/3.10.0-957.1.3.el7.x86_64/build SUBDIRS=/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi DAHDI_INCLUDE=/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/include DAHDI_MODULES_EXTRA=" " HOTPLUG_FIRMWARE=yes modules DAHDI_BUILD_ALL=m
make[2]: Entering directory `/usr/src/kernels/3.10.0-957.1.3.el7.x86_64'
 CC [M]  /usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.o
In file included from /usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:68:0:
/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/include/dahdi/kernel.h:1422:1: error: conflicting types for ‘timer_setup’
timer_setup(struct timer_list *timer,
^
In file included from include/linux/workqueue.h:8:0,
                from include/linux/srcu.h:34,
                from include/linux/notifier.h:15,
                from include/linux/memory_hotplug.h:6,
                from include/linux/mmzone.h:876,
                from include/linux/gfp.h:5,
                from include/linux/kmod.h:22,
                from include/linux/module.h:13,
                from /usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:40:
include/linux/timer.h:164:20: note: previous definition of ‘timer_setup’ was here
static inline void timer_setup(struct timer_list *timer,
                   ^
In file included from /usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:68:0:
/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/include/dahdi/kernel.h:1430:0: warning: "from_timer" redefined [enabled by default]
#define from_timer(var, callback_timer, timer_fieldname) \
^
In file included from include/linux/workqueue.h:8:0,
                from include/linux/srcu.h:34,
                from include/linux/notifier.h:15,
                from include/linux/memory_hotplug.h:6,
                from include/linux/mmzone.h:876,
                from include/linux/gfp.h:5,
                from include/linux/kmod.h:22,
                from include/linux/module.h:13,
                from /usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:40:
include/linux/timer.h:172:0: note: this is the location of the previous definition
#define from_timer(var, callback_timer, timer_fieldname) \
^
cc1: warning: unrecognized command line option "-Wno-format-truncation" [enabled by default]
make[3]: *** [/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.o] Error 1
make[2]: *** [_module_/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi] Error 2
make[2]: Leaving directory `/usr/src/kernels/3.10.0-957.1.3.el7.x86_64'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/local/src/asterisk/dahdi-linux-complete-3.0.0/dahdi-linux-complete-3.0.0+3.0.0/linux'
make: *** [all] Error 2
Comments:By: Anthony Hoppe (anthonyhoppe) 2018-12-28 11:49:35.492-0600

I am experiencing the same issue.  CentOS 7 /w kernel 3.10.0-957.1.3.el7.x86_64.  Let me know if there is any additional information I can provide that would be helpful.

make
make -C linux all
make[1]: Entering directory `/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux'
make -C drivers/dahdi/firmware firmware-loaders
make[2]: Entering directory `/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/firmware'
make[2]: Leaving directory `/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/firmware'
make -C /lib/modules/3.10.0-957.1.3.el7.x86_64/build SUBDIRS=/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi DAHDI_INCLUDE=/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/include DAHDI_MODULES_EXTRA=" " HOTPLUG_FIRMWARE=yes modules DAHDI_BUILD_ALL=m
make[2]: Entering directory `/usr/src/kernels/3.10.0-957.1.3.el7.x86_64'
 CC [M]  /usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.o
In file included from /usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:68:0:
/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/include/dahdi/kernel.h:1422:1: error: conflicting types for ‘timer_setup’
timer_setup(struct timer_list *timer,
^
In file included from include/linux/workqueue.h:8:0,
                from include/linux/srcu.h:34,
                from include/linux/notifier.h:15,
                from include/linux/memory_hotplug.h:6,
                from include/linux/mmzone.h:876,
                from include/linux/gfp.h:5,
                from include/linux/kmod.h:22,
                from include/linux/module.h:13,
                from /usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:40:
include/linux/timer.h:164:20: note: previous definition of ‘timer_setup’ was here
static inline void timer_setup(struct timer_list *timer,
                   ^
In file included from /usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:68:0:
/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/include/dahdi/kernel.h:1430:0: warning: "from_timer" redefined [enabled by default]
#define from_timer(var, callback_timer, timer_fieldname) \
^
In file included from include/linux/workqueue.h:8:0,
                from include/linux/srcu.h:34,
                from include/linux/notifier.h:15,
                from include/linux/memory_hotplug.h:6,
                from include/linux/mmzone.h:876,
                from include/linux/gfp.h:5,
                from include/linux/kmod.h:22,
                from include/linux/module.h:13,
                from /usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.c:40:
include/linux/timer.h:172:0: note: this is the location of the previous definition
#define from_timer(var, callback_timer, timer_fieldname) \
^
cc1: warning: unrecognized command line option "-Wno-format-truncation" [enabled by default]
make[3]: *** [/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi/dahdi-base.o] Error 1
make[2]: *** [_module_/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux/drivers/dahdi] Error 2
make[2]: Leaving directory `/usr/src/kernels/3.10.0-957.1.3.el7.x86_64'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/local/src/dahdi-linux-complete-3.0.0+3.0.0/linux'
make: *** [all] Error 2

By: Keith Morgan (kmorgan) 2019-01-31 09:43:14.975-0600

DAHDI 3.0 will only compile on kernels 4.15 or newer.

"The setup_timer functions were removed in upstream kernel v4.15, and therefore
this change is needed in order to compile DAHDI for kernels >= 4.15."

Use DAHDI 2.11.1 for older kernels.

By: Keith Morgan (kmorgan) 2019-01-31 09:44:55.221-0600

DAHDI 3.0 will only compile on kernels 4.15 or newer.

"The setup_timer functions were removed in upstream kernel v4.15, and therefore
this change is needed in order to compile DAHDI for kernels >= 4.15."

Use DAHDI 2.11.1 for older kernels.