Using amd-master branch at a64f0538bbe1dd025210a63e7a01979f7fc527b0, I encountered the following linking error:
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_open_pool':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:184: multiple definition of `roctracer_open_pool'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:184: first defined here
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_close_pool':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:193: multiple definition of `roctracer_close_pool'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:193: first defined here
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_default_pool':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:202: multiple definition of `roctracer_default_pool'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:202: first defined here
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_enable_op_activity':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:214: multiple definition of `roctracer_enable_op_activity'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:214: first defined here
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_enable_domain_activity':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:222: multiple definition of `roctracer_enable_domain_activity'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:222: first defined here
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_enable_activity':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:228: multiple definition of `roctracer_enable_activity'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:228: first defined here
gpu/amd/.libs/libhpcrun_la-roctracer-activity-translate.o: In function `roctracer_flush_activity':
/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:244: multiple definition of `roctracer_flush_activity'
sample-sources/.libs/libhpcrun_la-amd.o:/home/xm13/workspaces/rocm/roctracer/include/roctracer.h:244: first defined here
The root cause is that these functions are implemented in roctracter.h and these functions will be included in each compilation unit. At link time, there will be multiple definitions for the same function. One of the fix is to make these functions static inline.
Using amd-master branch at a64f0538bbe1dd025210a63e7a01979f7fc527b0, I encountered the following linking error:
The root cause is that these functions are implemented in
roctracter.h
and these functions will be included in each compilation unit. At link time, there will be multiple definitions for the same function. One of the fix is to make these functionsstatic inline
.