Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Apr 2011 11:46:16 +0200
From:      Roman Divacky <rdivacky@freebsd.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-multimedia@freebsd.org, current@freebsd.org
Subject:   Re: webcamd-0.1.26: does not build with clang
Message-ID:  <20110430094616.GA86210@freebsd.org>
In-Reply-To: <201104301113.25392.hselasky@c2i.net>
References:  <72378267@bb.ipt.ru> <201104301113.25392.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
I just tested with new llvm/clang and it compiles ok. I hope there's
going to be a new llvm/clang import in a few days so please try again
after the import..

The port does not link though, because of some problems with
linux_init_mod/linux_exit_mod. I didnt analyze it but I suspect this may
be a bug in the code itself (C99 vs C89?)

On Sat, Apr 30, 2011 at 11:13:25AM +0200, Hans Petter Selasky wrote:
> On Friday 29 April 2011 13:04:52 Boris Samorodov wrote:
> > Hi!
> > 
> > The port builds with the system compiler but not with clang:
> > ftp://ftp.bsam.ru/pub/tmp/webcamd.log.txt
> 
> Hi,
> 
> Edit the webcamd's port Makefile so that only one file is compiled at a time.
> 
> MAKE_JOBS_SAFE= yes
> 
> The following error code indicates a bug in the C-frontend of clang?
> 
> Instruction does not dominate all uses!
>   %tmp164 = add i32 %i.0162, %tmp
>   %conv24 = trunc i32 %tmp164 to i16
> Instruction does not dominate all uses!
>   %conv24 = trunc i32 %tmp164 to i16
>   %call28 = call fastcc i32 @dw210x_op_rw(%struct.usb_device* %tmp26, i8 
> zeroext -75, i16 zeroext %conv24, i16 zeroext 0, i8* %1, i16 zeroext 2, i32 0)
> Broken module found, compilation aborted!
> Stack dump:
> 0.      Program arguments: /usr/bin/clang -cc1 -triple i386-undermydesk-
> freebsd9.0 -emit-obj -disable-free -main-file-name dw2102.c -mrelocation-model 
> static -mdisable-fp-elim -relaxed-aliasing -masm-verbose -mconstructor-aliases 
> -target-cpu i486 -momit-leaf-frame-pointer -resource-dir 
> /usr/bin/../lib/clang/2.9 -include webcamd_global.h -D _GNU_SOURCE -D 
> CURR_FILE_NAME="dw2102" -D CONFIG_USB_GSPCA -D CONFIG_USB_GSPCA_SONIXB -D 
> CONFIG_USB_GSPCA_SONIXJ -D CONFIG_USB_GSPCA_ZC3XX -D CONFIG_DVB_AF9013 -D 
> CONFIG_MEDIA_TUNER_MXL5005S -D CONFIG_DVB_STV0288 -D CONFIG_DVB_MT312 -D 
> CONFIG_DVB_DS3000 -D CONFIG_DVB_STB0899 -D CONFIG_DVB_STB6100 -D 
> CONFIG_DVB_LNBP22 -D CONFIG_DVB_TUNER_DIB0070 -D CONFIG_DVB_DIB7000P -D 
> CONFIG_MEDIA_TUNER_MT2060 -D BITS_PER_LONG=32 -D LINUX -D CONFIG_INPUT -D 
> CONFIG_VIDEO_V4L1_COMPAT -D CONFIG_DVB_DIB3000MC -D CONFIG_VIDEO_PVRUSB2_DVB -
> D CONFIG_I2C -D CONFIG_DVB_CORE -D CONFIG_AS102_USB -D CONFIG_FW_LOADER -D 
> HAVE_WEBCAMD -D DBUS_API_SUBJECT_TO_CHANGE -D HAVE_HAL -D CONFIG_DVB_AT76C651 
> -D CONFIG_DVB_ATBM8830 -D CONFIG_DVB_AU8522 -D CONFIG_DVB_BCM3510 -D 
> CONFIG_DVB_CX22700 -D CONFIG_DVB_CX22702 -D CONFIG_DVB_CX24110 -D 
> CONFIG_DVB_CX24116 -D CONFIG_DVB_CX24123 -D CONFIG_DVB_DIB3000MB -D 
> CONFIG_DVB_DIB3000MC -D CONFIG_DVB_DIB3000MC -D CONFIG_DVB_DIB7000M -D 
> CONFIG_DVB_DIB7000P -D CONFIG_DVB_DIB8000 -D CONFIG_DVB_DRX397XD -D 
> CONFIG_DVB_EC100 -D CONFIG_DVB_ISL6405 -D CONFIG_DVB_ISL6421 -D 
> CONFIG_DVB_ISL6423 -D CONFIG_DVB_L64781 -D CONFIG_DVB_LGDT3304 -D 
> CONFIG_DVB_LGDT3305 -D CONFIG_DVB_LGDT330X -D CONFIG_DVB_LGS8GL5 -D 
> CONFIG_DVB_LGS8GXX -D CONFIG_DVB_LNBP21 -D CONFIG_DVB_LNBP22 -D 
> CONFIG_DVB_MB86A16 -D CONFIG_DVB_MT312 -D CONFIG_DVB_MT352 -D 
> CONFIG_DVB_NXT200X -D CONFIG_DVB_NXT6000 -D CONFIG_DVB_OR51132 -D 
> CONFIG_DVB_OR51211 -D CONFIG_DVB_PLL -D CONFIG_DVB_S5H1409 -D 
> CONFIG_DVB_S5H1411 -D CONFIG_DVB_S5H1420 -D CONFIG_DVB_S921 -D 
> CONFIG_DVB_SI21XX -D CONFIG_DVB_SP8870 -D CONFIG_DVB_SP887X -D 
> CONFIG_DVB_STB0899 -D CONFIG_DVB_STB6000 -D CONFIG_DVB_STB6100 -D 
> CONFIG_DVB_STV0288 -D CONFIG_DVB_STV0297 -D CONFIG_DVB_STV0299 -D 
> CONFIG_DVB_STV0900 -D CONFIG_DVB_STV090x -D CONFIG_DVB_STV6110 -D 
> CONFIG_DVB_STV6110x -D CONFIG_DVB_TDA10021 -D CONFIG_DVB_TDA10023 -D 
> CONFIG_DVB_TDA10048 -D CONFIG_DVB_TDA1004X -D CONFIG_DVB_TDA10086 -D 
> CONFIG_DVB_TDA665x -D CONFIG_DVB_TDA8083 -D CONFIG_DVB_TDA80XX -D 
> CONFIG_DVB_TDA8261 -D CONFIG_DVB_TDA826X -D CONFIG_DVB_TUA6100 -D 
> CONFIG_DVB_TUNER_CX24113 -D CONFIG_DVB_TUNER_DIB0090 -D 
> CONFIG_DVB_TUNER_ITD1000 -D CONFIG_DVB_VES1820 -D CONFIG_DVB_VES1X93 -D 
> CONFIG_DVB_ZL10036 -D CONFIG_DVB_ZL10039 -D CONFIG_DVB_ZL10353 -D 
> CONFIG_MEDIA_TUNER_MAX2165 -D CONFIG_MEDIA_TUNER_MC44S803 -D 
> CONFIG_MEDIA_TUNER_MC44S803 -D CONFIG_MEDIA_TUNER_MT2060 -D 
> CONFIG_MEDIA_TUNER_MT20XX -D CONFIG_MEDIA_TUNER_MT2131 -D 
> CONFIG_MEDIA_TUNER_MT2266 -D CONFIG_MEDIA_TUNER_MXL5005S -D 
> CONFIG_MEDIA_TUNER_MXL5007T -D CONFIG_MEDIA_TUNER_QT1010 -D 
> CONFIG_MEDIA_TUNER_SIMPLE -D CONFIG_MEDIA_TUNER_TDA18271 -D 
> CONFIG_MEDIA_TUNER_TDA18218 -D CONFIG_MEDIA_TUNER_TDA827X -D 
> CONFIG_MEDIA_TUNER_TDA8290 -D CONFIG_MEDIA_TUNER_TDA9887 -D 
> CONFIG_MEDIA_TUNER_TEA5761 -D CONFIG_MEDIA_TUNER_TEA5767 -D 
> CONFIG_MEDIA_TUNER_XC2028 -D CONFIG_MEDIA_TUNER_XC5000 -D 
> CONFIG_VIDEO_EM28XX_DVB -D CONFIG_VIDEO_SAA7134_DVB_MODULE -D CONFIG_IR_CORE -
> D CONFIG_VIDEO_IR -I /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/dummy -
> I /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/headers -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/video/gspca -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/video/hdpvr -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/common/tuners -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/dvb/dvb-core -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/dvb/frontends -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/dvb/dvb-usb -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-dvb/linux/include -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-dvb/linux -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26 -I 
> /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/dvb/ttpci -I /usr/local/include/hal -I 
> /usr/local/include/dbus-1.0 -I /usr/local/include/dbus-1.0/include -I 
> /usr/local/include -O2 -Wall -Wno-pointer-sign -std=gnu99 -ferror-limit 19 -
> fmessage-length 0 -stack-protector 1 -fgnu-runtime -fdiagnostics-show-option -
> o dw2102.o -x c /usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/dvb/dvb-usb/dw2102.c 
> 1.      <eof> parser at end of file
> 2.      Code generation
> 3.      Running pass 'Function Pass Manager' on module 
> '/usr/ports/multimedia/webcamd/work/webcamd-0.1.26/v4l-
> dvb/linux/drivers/media/dvb/dvb-usb/dw2102.c'.
> 4.      Running pass 'Module Verifier' on function '@dw2102_i2c_transfer'
> clang: error: unable to execute command: Abort trap: 6 (core dumped)
> clang: error: clang frontend command failed due to signal 1 (use -v to see 
> invocation)
> 
> --HPS
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110430094616.GA86210>