Skip to content
Snippets Groups Projects
  • Shinya Kuribayashi's avatar
    14209ac1
    MIPS: Fix GCC-4.2 'discards qualifiers from pointer target type' warnings · 14209ac1
    Shinya Kuribayashi authored
    
    Compiling dbau1x00 and gth2 boards with GCC-4.2, you would see new warnings
    like this:
    
    skuribay@ubuntu:u-boot.git$ ./MAKEALL dbau1000
    Configuring for dbau1x00 board...
    au1x00_eth.c: In function 'au1x00_send':
    au1x00_eth.c:158: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_recv':
    au1x00_eth.c:211: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_init':
    au1x00_eth.c:252: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_recv':
    au1x00_eth.c:211: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_init':
    au1x00_eth.c:252: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_send':
    au1x00_eth.c:158: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    
    We're passing a volatile pointer to a function which is expecting a non-
    volatile pointer.  That's potentially dangerous, so gcc warns about it.
    Confirmed with ELDK 4.2 (GCC 4.2.2) and Sourcey G++ 4.2 (GCC 4.2.3).
    
    To fix this, we add a volatile attribute to the argument in question.
    The virt_to_phys function in Linux kernel also does the same thing.
    
    Signed-off-by: default avatarStefan Roese <sr@denx.de>
    Signed-off-by: default avatarShinya Kuribayashi <skuribay@ruby.dti.ne.jp>
    14209ac1
    History
    MIPS: Fix GCC-4.2 'discards qualifiers from pointer target type' warnings
    Shinya Kuribayashi authored
    
    Compiling dbau1x00 and gth2 boards with GCC-4.2, you would see new warnings
    like this:
    
    skuribay@ubuntu:u-boot.git$ ./MAKEALL dbau1000
    Configuring for dbau1x00 board...
    au1x00_eth.c: In function 'au1x00_send':
    au1x00_eth.c:158: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_recv':
    au1x00_eth.c:211: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_init':
    au1x00_eth.c:252: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_recv':
    au1x00_eth.c:211: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_init':
    au1x00_eth.c:252: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    au1x00_eth.c: In function 'au1x00_send':
    au1x00_eth.c:158: warning: passing argument 1 of 'virt_to_phys' discards qualifiers from pointer target type
    
    We're passing a volatile pointer to a function which is expecting a non-
    volatile pointer.  That's potentially dangerous, so gcc warns about it.
    Confirmed with ELDK 4.2 (GCC 4.2.2) and Sourcey G++ 4.2 (GCC 4.2.3).
    
    To fix this, we add a volatile attribute to the argument in question.
    The virt_to_phys function in Linux kernel also does the same thing.
    
    Signed-off-by: default avatarStefan Roese <sr@denx.de>
    Signed-off-by: default avatarShinya Kuribayashi <skuribay@ruby.dti.ne.jp>