Summary: | DAHLIN-00069: DAHDI-linux failed to compile on Sparc64 - ubuntu 8.04 Server | ||
Reporter: | Etienne (etn) | Labels: | |
Date Opened: | 2009-01-02 09:29:54.000-0600 | Date Closed: | 2009-03-17 15:37:05 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | General |
Versions: | 2.1.0.3 | Frequency of Occurrence | |
Related Issues: | |||
Environment: | Attachments: | ||
Description: | root@sl06:/# uname -a Linux sl06 2.6.22-16-sparc64-smp #1 SMP Mon Nov 24 23:21:07 GMT 2008 sparc64 GNU/Linux root@sl06:/usr/src/dahdi-linux-2.1.0.3# make make -C /lib/modules/2.6.22-16-sparc64-smp/build ARCH=sparc64 SUBDIRS=/usr/src/dahdi-linux-2.1.0.3/drivers/dahdi DAHDI_INCLUDE=/usr/src/dahdi-linux-2.1.0.3/include DAHDI_MODULES_EXTRA=" " HOTPLUG_FIRMWARE=yes modules DAHDI_BUILD_ALL=m make[1]: Entering directory `/usr/src/linux-headers-2.6.22-16-sparc64-smp' CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi-base.o LD [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_dummy.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_dynamic.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_dynamic_loc.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_dynamic_eth.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_transcode.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctdm.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct1xxp.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wcte11xp.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wcfxo.o gcc -o /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/makefw /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/makefw.c /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/makefw /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/tormenta2.rbt tor2fw > /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/tor2fw.h Loaded 69900 bytes from file CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/tor2.o /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/makefw /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/pciradio.rbt radfw > /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/radfw.h Loaded 42096 bytes from file CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/pciradio.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_echocan_jpah.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_echocan_sec.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_echocan_sec2.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_echocan_kb1.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_echocan_mg2.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wcb4xxp/base.o LD [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wcb4xxp/wcb4xxp.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/base.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/vpm450m.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/apilib/bt/octapi_bt0.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/apilib/largmath/octapi_largmath.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/../oct612x/apilib/llman/octapi_llman.o LD [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wct4xxp/wct4xxp.o CC [M] /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.o /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c: In function ‘wctc4xxp_cleanup_descriptor_ring’: /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c:1265: warning: implicit declaration of function ‘dma_unmap_single’ /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c: In function ‘wctc4xxp_init_one’: /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c:3001: error: ‘DMA_32BIT_MASK’ undeclared (first use in this function) /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c:3001: error: (Each undeclared identifier is reported only once /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c:3001: error: for each function it appears in.) /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c:3014: error: ‘DMA_TO_DEVICE’ undeclared (first use in this function) /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.c:3024: error: ‘DMA_FROM_DEVICE’ undeclared (first use in this function) make[3]: *** [/usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp/base.o] Error 1 make[2]: *** [/usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/wctc4xxp] Error 2 make[1]: *** [_module_/usr/src/dahdi-linux-2.1.0.3/drivers/dahdi] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.22-16-sparc64-smp' make: *** [modules] Error 2 I just tried to compile dahdi-dummy but in all case i got this issue. ****** ADDITIONAL INFORMATION ****** Same issue on SVN trunk. | ||
Comments: | By: Tzafrir Cohen (tzafrir) 2009-01-03 15:30:52.000-0600 I see that this bug is left unhandled. Any way to reproduce it on a x86 build host (using qemu?) By: Etienne (etn) 2009-01-03 15:42:55.000-0600 Sorry I don't have this possibility to install qemu on this Sparc64 server. I'm pretty sure that it comes from dma_unmap_single function called in base.c that should probably be called differently on Sparc64 architecture. I think dahdi isn't officially supported on Sparc64 but i thought that it could be interesting to note this bug :) By: Etienne (etn) 2009-01-07 10:10:20.000-0600 Do you know if there's a workaround in order to compile only dummy module? By: Tzafrir Cohen (tzafrir) 2009-01-07 10:35:07.000-0600 Editing drivers/dahdi/Kbuild or other types of makefile hacking can do the trick. (with qemu: I meant: building it in qemu on a x86 host. See http://wiki.debian.org/qemubuilder By: Etienne (etn) 2009-01-08 03:09:15.000-0600 I tried this this : In /dahdi-linux-2.1.0.3/drivers/dahdi/Kbuild file: obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI) += dahdi.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DUMMY) += dahdi_dummy.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC) += dahdi_dynamic.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC_LOC) += dahdi_dynamic_loc.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC_ETH) += dahdi_dynamic_eth.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_TRANSCODE) += dahdi_transcode.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCT4XXP) += wct4xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTC4XXP) += wctc4xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM24XXP) += wctdm24xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTE12XP) += wcte12xp/ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM) += wctdm.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCB4XXP) += wcb4xxp/ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCT1XXP) += wct1xxp.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTE11XP) += wcte11xp.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCFXO) += wcfxo.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_TOR2) += tor2.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_PCIRADIO) += pciradio.o (..) It compiles modules, good point. I can insert dahdy_dummy before Asterisk compilation, good point too but when i tried to launch asterisk compiled with dahdi support with dadhi_dummy module loaded i can't start asterisk: root@sl06:/# asterisk -vvvvvv Asterisk 1.4.22, Copyright (C) 1999 - 2008 Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found == Parsing '/etc/asterisk/logger.conf': Found Asterisk Event Logger Started /var/log/asterisk/event_log [Jan 8 10:04:45] ERROR[4984]: asterisk.c:3022 main: You have DAHDI built and drivers loaded, but the DAHDI timer test failed to set DAHDI_TIMERCONFIG to 160. Do you have an another idea...? Thanks a lot Etienne By: Etienne (etn) 2009-01-09 08:46:26.000-0600 In asterisk.c: (..) #elif defined(HAVE_DAHDI) 3016 { 3017 int fd; 3018 int x = 160; 3019 fd = open("/dev/dahdi/timer", O_RDWR); 3020 if (fd >= 0) { 3021 if (ioctl(fd, DAHDI_TIMERCONFIG, &x)) { 3022 ast_log(LOG_ERROR, "You have DAHDI built and drivers loaded, but the DAHDI timer test failed to set DAHDI_TIMERCONFIG to %d.\n", x); 3023 exit(1); 3024 } 3025 if ((x = ast_wait_for_input(fd, 300)) < 0) { 3026 ast_log(LOG_ERROR, "You have DAHDI built and drivers loaded, but the DAHDI timer could not be p olled during the DAHDI timer test.\n"); 3027 exit(1); 3028 } 3029 if (!x) { 3030 const char dahdi_timer_error[] = { 3031 "Asterisk has detected a problem with your DAHDI configuration and will shutdown for yo ur protection. You have options:" 3032 "\n\t1. You only have to compile DAHDI support into Asterisk if you need it. One optio n is to recompile without DAHDI support." 3033 "\n\t2. You only have to load DAHDI drivers if you want to take advantage of DAHDI serv ices. One option is to unload DAHDI modules if you don't need them." 3034 "\n\t3. If you need DAHDI services, you must correctly configure DAHDI." 3035 }; 3036 ast_log(LOG_ERROR, "%s\n", dahdi_timer_error); 3037 exit(1); 3038 } 3039 close(fd); 3040 } 3041 } 3042 3043 #endif Ioctl function seems to be in fault. An idea: Could it be linked with Sparc 64 bits processor...? I think that this function doesn't return same thing than on 32 bits... By: Etienne (etn) 2009-01-09 12:21:56.000-0600 I found something http://www.mail-archive.com/asterisk-dev@lists.digium.com/msg06927.html It seems to be completely linked with my issue. Is there any "tree" including this kind of patch...? By: Tzafrir Cohen (tzafrir) 2009-01-09 13:35:54.000-0600 etn, thos are the symptoms of "no timing source". E.g. does dahdi_test show anything? Not related to the original issue. By: Etienne (etn) 2009-01-12 03:13:43.000-0600 root@sl06:/usr/src/dahdi-tools-2.1.0.2# ./dahdi_test Opened pseudo dahdi interface, measuring accuracy... 99.997% 99.986% 99.995% 99.995% 99.995% 99.995% 99.995% 99.995% 99.996% 99.992% 99.995% 99.995% 99.995% 99.995% 99.995% 99.995% 99.995% 99.994% 99.996% 99.995% 99.995% 99.995% 99.995% 99.995% 99.995% 99.994% 99.997% 99.988% 99.991% 99.995% 99.996% 99.995% 99.995% 99.994% 99.995% 99.995% 99.996% 99.995% 99.995% 99.995% 99.995% 99.994% 99.995% 99.996% ^V99.995% --- Results after 45 passes --- Best: 99.997 -- Worst: 99.986 -- Average: 99.994590, Difference: 99.994590 By: Etienne (etn) 2009-01-16 11:44:14.000-0600 any idea...? By: Jason Parker (jparker) 2009-03-17 15:37:05 Since sparc isn't a supported platform, I'm going to go ahead and close this. I suspect a non-trivial amount of work would need to be done, not only for sparc, but for the 32-/64-bit userspace/kernel split that sparc64 distros have. This issue and your comments have been noted. |