You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On the llvm2 branch the NOC library does not compile using the make APP.. compile command, throwing a linking error saying various symbols defined in the c/cmp/nocinit and application itself cannot be found.
The issue is caused by the compilation process, which currently hides all symbols defined by the application from any library code. Since c/cmp/nocinit is by default compiled with the application as if it was part of the application, anything defined in it is hidden from the libnoc code, resulting in the linking error.
I propose the solution is to move nocinit.c into the noc library itself, thus fixing the linking issues. This is a bit involved as this file is generated by poseidon and the make gen patmos command. The file would also have to include the NOC_MASTER symbol, which is currently define by each application individually (why?).
Even if this is fixed, the argo2_test program does not work on the FPGA. I don't know exactly the reason for this, but this should be investigated after fixing the above issue.
The issue with argo2_test (and other programs using argo) on the FPGA was with downloader (patserdow). The new compiler generates more segments in the ELF file, and not all have the LOAD type. I fixed this (d33445b) by only downloading LOAD segments, but perhaps we need to actually think about what to do with the different segment types.
nocinit.c has moved to libnoc/nocinit.c, and NOC_MASTER to libnoc/nocmaster.c. We no longer (at least for now) support libnoc in bootable apps through the default Makefile, because the bootable app is generated before Patmos, which is generated before Argo, which generates nocinit.c.
On the llvm2 branch the NOC library does not compile using the
make APP.. compile
command, throwing a linking error saying various symbols defined in thec/cmp/nocinit
and application itself cannot be found.The issue is caused by the compilation process, which currently hides all symbols defined by the application from any library code. Since
c/cmp/nocinit
is by default compiled with the application as if it was part of the application, anything defined in it is hidden from thelibnoc
code, resulting in the linking error.I propose the solution is to move
nocinit.c
into the noc library itself, thus fixing the linking issues. This is a bit involved as this file is generated by poseidon and themake gen
patmos command. The file would also have to include theNOC_MASTER
symbol, which is currently define by each application individually (why?).@torurstrom could you take a look at this?
The text was updated successfully, but these errors were encountered: