atv.cpp: In member function ‘void atv::SetDmaAlgo()’:
atv.cpp:161:59: error: cast from ‘dma::dma_cb_t*’ to ‘unsigned int’ loses precision [-fpermissive]
dbg_printf(1, "Last cbp : %d \n", ((unsigned int)(cbp) - (unsigned int)(cbarray)) / sizeof(dma_cb_t));
^
atv.cpp:161:85: error: cast from ‘dma::dma_cb_t*’ to ‘unsigned int’ loses precision [-fpermissive]
dbg_printf(1, "Last cbp : %d \n", ((unsigned int)(cbp) - (unsigned int)(cbarray)) / sizeof(dma_cb_t));
That's because a pointer on 64 bit could be > 4GB, which is the maximum for unsigned int to hold.
The desired solution would just replace unsigned int with uintptr_t there and gcc is happy.
Edit: Also note that the install.sh contains || exit for the cd's but not for make, which would help stopping the installation if the build already failed there
Edit2: It looks like installing it on that 64bit OS is a problem, because csdr fails but more importantly dvb/dvbsenco8.s doesn't work at all
Edit3: Sorry for posting this here instead on the main repo, but: I "fixed" csdr, for dvbsenco I have the problem that GAS (GCC's Assembler) doesn't like the @ as comment, it should be #. I wonder why it worked with @ before?
Anyway for the time being I just removed the dvbrf target from the Makefile, issues were like these (it's unclear whether this all only is because the parser was confused by the @s):
vb/dvbsenco8.s:330: Error: unknown mnemonic `pop' -- `pop {r0,r1,r2}'
dvb/dvbsenco8.s:331: Error: unknown mnemonic `bx' -- `bx lr'
dvb/dvbsenco8.s:334: Error: junk at end of line, first unrecognized character is `@'
dvb/dvbsenco8.s:335: Error: junk at end of line, first unrecognized character is `@'
dvb/dvbsenco8.s:338: Error: unknown mnemonic `push' -- `push {r1,r2,r3,r4,r5,r6,r7,r8}'
dvb/dvbsenco8.s:339: Error: operand 1 must be an integer register -- `ldr r1,=ipackets@:r1=base address of the ipackets output array'
dvb/dvbsenco8.s:340: Error: operand 1 must be an integer register -- `mov r2,#NIPACKETS*IPACKETSIZE'
dvb/dvbsenco8.s:341: Error: operand 1 must be an integer or stack pointer register -- `add r2,#-1@:r2=modulo mask for the ipackets output array'
dvb/dvbsenco8.s:342: Error: operand 1 must be an integer register -- `ldr r3,=interleavetable@:r3=base address of the interleave offset table'
dvb/dvbsenco8.s:343: Error: operand 1 must be an integer register -- `ldr r4,=packetcount@:r4=address of input packet number'
dvb/dvbsenco8.s:344: Error: operand 1 must be an integer register -- `ldr r5,[r4]@:r5=input packet count'
dvb/dvbsenco8.s:345: Error: operand 1 must be an integer or stack pointer register -- `and r5,#(NIPACKETS-1)@:mask off actual number of output packet slots'
dvb/dvbsenco8.s:346: Error: operand 1 must be an integer register -- `mov r6,#IPACKETSIZE'
dvb/dvbsenco8.s:347: Error: operand 1 must be a SIMD vector register -- `mul r5,r6@:r5=offset into ipackets of first byte to be filled'
It would be desirable to also have some sort of ./configure script to maybe just disable/deselect dvb if one does not use it / or disable it if AARCH64
Edit4: boot/config.txt claims gpu_freq=250 being the default (at least it has a comment in front of it)
That's because a pointer on 64 bit could be > 4GB, which is the maximum for unsigned int to hold.
The desired solution would just replace
unsigned int
withuintptr_t
there and gcc is happy.Edit: Also note that the install.sh contains
|| exit
for the cd's but not for make, which would help stopping the installation if the build already failed thereEdit2: It looks like installing it on that 64bit OS is a problem, because csdr fails but more importantly
dvb/dvbsenco8.s
doesn't work at allEdit3: Sorry for posting this here instead on the main repo, but: I "fixed" csdr, for dvbsenco I have the problem that GAS (GCC's Assembler) doesn't like the
@
as comment, it should be#
. I wonder why it worked with@
before?Anyway for the time being I just removed the dvbrf target from the Makefile, issues were like these (it's unclear whether this all only is because the parser was confused by the
@
s):It would be desirable to also have some sort of ./configure script to maybe just disable/deselect dvb if one does not use it / or disable it if
AARCH64
Edit4: boot/config.txt claims gpu_freq=250 being the default (at least it has a comment in front of it)