Skip to content

Instantly share code, notes, and snippets.

@marklombardi
Last active April 1, 2021 11:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marklombardi/adc0c93afc942aa794da4d2027b7db43 to your computer and use it in GitHub Desktop.
Save marklombardi/adc0c93afc942aa794da4d2027b7db43 to your computer and use it in GitHub Desktop.
Building cmem for aarch64/arm64
make -C src/cmem/module ARCH=aarch64
make[1]: Entering directory '/home/user/temp/ludev/src/cmem/module'
Making module release...
make -C /home/user/temp/armv8-linux-dev/KERNEL M=`pwd` ARCH=aarch64 CROSS_COMPILE=/home/user/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu- \
EXTRA_CFLAGS="-I/home/user/temp/ludev/include" modules
make[2]: Entering directory '/home/user/temp/armv8-linux-dev/KERNEL'
CC [M] /home/user/temp/ludev/src/cmem/module/cmemk.o
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:41: error: ‘__glue’ declared as function returning a function
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:258:6: note: in expansion of macro ‘dmac_map_area’
void dmac_map_area(const void *, size_t, int);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:258:1: warning: parameter names (without types) in function declaration
void dmac_map_area(const void *, size_t, int);
^~~~
In file included from ./arch/aarch64/include/asm/page.h:27,
from ./include/linux/mmzone.h:21,
from ./include/linux/gfp.h:6,
from ./include/linux/idr.h:16,
from ./include/linux/kernfs.h:14,
from ./include/linux/sysfs.h:16,
from ./include/linux/kobject.h:21,
from ./include/linux/device.h:17,
from /home/user/temp/ludev/src/cmem/module/cmemk.c:19:
/home/user/temp/ludev/src/cmem/module/cmemk.c: In function ‘mmap_buffer’:
/home/user/temp/ludev/src/cmem/module/cmemk.c:1167:5: error: ‘L_PTE_MT_WRITEALLOC’ undeclared (first use in this function)
(L_PTE_MT_WRITEALLOC | L_PTE_MT_BUFFERABLE));
^~~~~~~~~~~~~~~~~~~
./arch/aarch64/include/asm/pgtable-types.h:55:36: note: in definition of macro ‘__pgprot’
#define __pgprot(x) ((pgprot_t) { (x) } )
^
/home/user/temp/ludev/src/cmem/module/cmemk.c:1167:5: note: each undeclared identifier is reported only once for each function it appears in
(L_PTE_MT_WRITEALLOC | L_PTE_MT_BUFFERABLE));
^~~~~~~~~~~~~~~~~~~
./arch/aarch64/include/asm/pgtable-types.h:55:36: note: in definition of macro ‘__pgprot’
#define __pgprot(x) ((pgprot_t) { (x) } )
^
/home/user/temp/ludev/src/cmem/module/cmemk.c:1167:27: error: ‘L_PTE_MT_BUFFERABLE’ undeclared (first use in this function)
(L_PTE_MT_WRITEALLOC | L_PTE_MT_BUFFERABLE));
^~~~~~~~~~~~~~~~~~~
./arch/aarch64/include/asm/pgtable-types.h:55:36: note: in definition of macro ‘__pgprot’
#define __pgprot(x) ((pgprot_t) { (x) } )
^
/home/user/temp/ludev/src/cmem/module/cmemk.c: In function ‘cmem_dma_buf_end_cpu_access’:
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:48: error: ‘_CACHE’ undeclared (first use in this function)
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1242:3: note: in expansion of macro ‘dmac_map_area’
dmac_map_area(entry->kvirtp, entry->size, direction);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:55: error: ‘_dma_map_area’ undeclared (first use in this function); did you mean ‘__dma_map_area’?
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1242:3: note: in expansion of macro ‘dmac_map_area’
dmac_map_area(entry->kvirtp, entry->size, direction);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1245:2: error: implicit declaration of function ‘outer_clean_range’; did you mean ‘pud_clear_huge’? [-Werror=implicit-function-declaration]
outer_clean_range(entry->physp, entry->physp + entry->size);
^~~~~~~~~~~~~~~~~
pud_clear_huge
/home/user/temp/ludev/src/cmem/module/cmemk.c: In function ‘cmem_dma_buf_begin_cpu_access’:
/home/user/temp/ludev/src/cmem/module/cmemk.c:1342:2: error: implicit declaration of function ‘outer_inv_range’; did you mean ‘time_in_range’? [-Werror=implicit-function-declaration]
outer_inv_range(entry->physp, entry->physp + entry->size);
^~~~~~~~~~~~~~~
time_in_range
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:48: error: ‘_CACHE’ undeclared (first use in this function)
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1344:3: note: in expansion of macro ‘dmac_map_area’
dmac_map_area(entry->kvirtp, entry->size, direction);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:55: error: ‘_dma_map_area’ undeclared (first use in this function); did you mean ‘__dma_map_area’?
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1344:3: note: in expansion of macro ‘dmac_map_area’
dmac_map_area(entry->kvirtp, entry->size, direction);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c: In function ‘ioctl’:
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:48: error: ‘_CACHE’ undeclared (first use in this function)
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1792:7: note: in expansion of macro ‘dmac_map_area’
dmac_map_area(virtp, size, DMA_FROM_DEVICE);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:257:55: error: ‘_dma_map_area’ undeclared (first use in this function); did you mean ‘__dma_map_area’?
#define dmac_map_area __glue(_CACHE,_dma_map_area)
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:1792:7: note: in expansion of macro ‘dmac_map_area’
dmac_map_area(virtp, size, DMA_FROM_DEVICE);
^~~~~~~~~~~~~
/home/user/temp/ludev/src/cmem/module/cmemk.c:2014:3: error: implicit declaration of function ‘flush_cache_all’; did you mean ‘flush_cache_page’? [-Werror=implicit-function-declaration]
flush_cache_all();
^~~~~~~~~~~~~~~
flush_cache_page
/home/user/temp/ludev/src/cmem/module/cmemk.c:2094:4: error: implicit declaration of function ‘outer_flush_range’ [-Werror=implicit-function-declaration]
outer_flush_range(physp, physp + block.size);
^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:334: recipe for target '/home/user/temp/ludev/src/cmem/module/cmemk.o' failed
make[3]: *** [/home/user/temp/ludev/src/cmem/module/cmemk.o] Error 1
Makefile:1523: recipe for target '_module_/home/user/temp/ludev/src/cmem/module' failed
make[2]: *** [_module_/home/user/temp/ludev/src/cmem/module] Error 2
make[2]: Leaving directory '/home/user/temp/armv8-linux-dev/KERNEL'
Makefile:31: recipe for target 'release' failed
make[1]: *** [release] Error 2
make[1]: Leaving directory '/home/user/temp/ludev/src/cmem/module'
lu.mak:56: recipe for target 'module' failed
make: *** [module] Error 2
make: Nothing to be done for 'all'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment