cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
joancab
Teacher
Teacher
883 Views
Registered: ‎05-11-2015

Vitis 20.2 does not build anything any more

Jump to solution

An error I saw here yesterday and I thought "I'll hit that some time as well" and here it is...
I've been using Vitis 20.2 for some months and now all of a sudden, it doesn't even build a platform anymore. Error is:

 

make (e=2): The system cannot find the file specified.

 

I deleted the project and started back with the XSA. Same.

I went to yesterday's project (that could build at the time). Doesn't build.

My machine OS didn't update recently.

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
jeffrey.johnson
Voyager
Voyager
652 Views
Registered: ‎02-07-2008

@joancab 

The makefiles generated by Vitis HLS 2020.2 for custom IP need to be modified. They have comments in them that need to be removed (they are not being treated as comments under Windows, I don't know why). Checkout these posts:

https://forums.xilinx.com/t5/High-Level-Synthesis-HLS/Vitis-for-Windows-can-t-build-platform-for-Vitis-HLS-project/m-p/1203180


https://forums.xilinx.com/t5/High-Level-Synthesis-HLS/Bug-HLS-2020-2-generated-makefile-compilation-error-in-vitis/td-p/1206772

I scripted a fix to automatically go through all of the makefiles in a HLS project and remove the bad comments, you can see it here:

https://github.com/fpgadeveloper/ethernet-fmc-max-throughput/tree/master/HLS

Let me know if that fixes your problem.

Jeff

View solution in original post

8 Replies
joancab
Teacher
Teacher
857 Views
Registered: ‎05-11-2015

As I read that Vitis still would work on another drive, I tried on a pendrive and yes, I could build something, but only once! I went back to the previous project (to see if the bug was fixed) and now I can't build in both C and D drives. 

0 Kudos
joancab
Teacher
Teacher
841 Views
Registered: ‎05-11-2015

I created a partition (Z) in the drive. Same. Doesn't build. This is a serious issue. Let me know if there is anything better than this:

joancab_0-1616003581431.png

 

0 Kudos
joancab
Teacher
Teacher
777 Views
Registered: ‎05-11-2015

Shockingly, the above doesn't work. I uninstalled everything in C:/Xilinx, deleted the folder, installed again and it doesn't build anything.

If I disable 'generate boot components' as well as the HLS-generated driver in the BSP settings, it builds the platform at least.

For another Vivado project without custom HLS blocks, it imports the XSA and builds the platform even generating boot components

What makes me thing the problem could be in the XSA when including HLS-generated drivers (?)

@jeffrey.johnson I think you've been bitten by the same beast

0 Kudos
jeffrey.johnson
Voyager
Voyager
752 Views
Registered: ‎02-07-2008

@joancab Vitis has given me some nasty bites, but not this one (yet). If I were you, and assuming you're using Windows, I would try this on a Linux machine, see if it still happens. I seem to have had better luck with Linux.

0 Kudos
joancab
Teacher
Teacher
712 Views
Registered: ‎05-11-2015

That's my next step

0 Kudos
joancab
Teacher
Teacher
684 Views
Registered: ‎05-11-2015

I dared to research a bit more and found that (with reinstalled Vivado/ Vitis/ Vitis HLS on Windows10):

- A Vivado project with only a block diagram with a PS block exported to Vitis to create a platform, succeeds.

- Adding my HLS IP (and other blocks like DMA, smartconnects, etc.) fails with the errors mentioned above.

- Dropping the HLS IP, leaving other logicore IPs builds the platform.

So it looks like the root of the problem is in the HLS IP and it pops up in Vitis

 

Errors are below. My HLS IP is called 'interleaver'. 

make -C psu_cortexa53_0/libsrc/interleaver_v1_0/src -s include  "SHELL=CMD" "COMPILER=aarch64-none-elf-gcc" "ASSEMBLER=aarch64-
none-elf-as" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS=  -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra -Os -flto -ffat-lt
o-objects"

process_begin: CreateProcess(NULL, #echo "Copying 'xinterleaver_hw.h' to '../../../include/xinterleaver_hw.h'", ...) failed.
make (e=2): The system cannot find the file specified.
make[2]: *** [Makefile:40: ../../../include/xinterleaver_hw.h] Error 2
make[1]: *** [Makefile:42: psu_cortexa53_0/libsrc/interleaver_v1_0/src/make.include] Error 2
make: *** [Makefile:18: all] Error 2
make: Leaving directory 'C:/Users/PC/XilinxWorkspace/Vitis/dummy/ppp/zynqmp_fsbl/zynqmp_fsbl_bsp'

...

make -C psu_cortexa53_0/libsrc/interleaver_v1_0/src -s include  "SHELL=CMD" "COMPILER=aarch64-none-elf-gcc" "ASSEMBLER=aarch64-
none-elf-as" "ARCHIVER=aarch64-none-elf-ar" "COMPILER_FLAGS=  -O2 -c" "EXTRA_COMPILER_FLAGS=-g -Wall -Wextra -Os -flto -ffat-lt
o-objects"

process_begin: CreateProcess(NULL, #echo "Copying 'xinterleaver_hw.h' to '../../../include/xinterleaver_hw.h'", ...) failed.
make (e=2): The system cannot find the file specified.
make[3]: *** [Makefile:40: ../../../include/xinterleaver_hw.h] Error 2
make[2]: *** [Makefile:42: psu_cortexa53_0/libsrc/interleaver_v1_0/src/make.include] Error 2
make[1]: *** [Makefile:18: all] Error 2
make: *** [Makefile:30: zynqmp_fsbl_bsp/psu_cortexa53_0/lib/libxil.a] Error 2
make[1]: Leaving directory 'C:/Users/PC/XilinxWorkspace/Vitis/dummy/ppp/zynqmp_fsbl/zynqmp_fsbl_bsp'

...

make -C psu_pmu_0/libsrc/interleaver_v1_0/src -s include  "SHELL=CMD" "COMPILER=mb-gcc" "ASSEMBLER=mb-as" "ARCHIVER=mb-ar" "COM
PILER_FLAGS=  -O2 -c -mcpu=v9.2 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -mxl-soft-mul" "EXTRA_COMPILER_FLAGS=-g 
process_begin: CreateProcess(NULL, #echo "Copying 'xinterleaver_hw.h' to '../../../include/xinterleaver_hw.h'", ...) failed.
make (e=2): The system cannot find the file specified.
make[2]: *** [Makefile:40: ../../../include/xinterleaver_hw.h] Error 2
-ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects"

make[1]: *** [Makefile:42: psu_pmu_0/libsrc/interleaver_v1_0/src/make.include] Error 2
make: *** [Makefile:18: all] Error 2
make: Leaving directory 'C:/Users/PC/XilinxWorkspace/Vitis/dummy/ppp/zynqmp_pmufw/zynqmp_pmufw_bsp'

...

make -C psu_pmu_0/libsrc/interleaver_v1_0/src -s include  "SHELL=CMD" "COMPILER=mb-gcc" "ASSEMBLER=mb-as" "ARCHIVER=mb-ar" "COM
PILER_FLAGS=  -O2 -c -mcpu=v9.2 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare -mxl-soft-mul" "EXTRA_COMPILER_FLAGS=-g 
-ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects"

process_begin: CreateProcess(NULL, #echo "Copying 'xinterleaver_hw.h' to '../../../include/xinterleaver_hw.h'", ...) failed.
make (e=2): The system cannot find the file specified.
make[3]: *** [Makefile:40: ../../../include/xinterleaver_hw.h] Error 2
make[2]: *** [Makefile:42: psu_pmu_0/libsrc/interleaver_v1_0/src/make.include] Error 2
make[1]: *** [Makefile:18: all] Error 2
make: *** [Makefile:30: zynqmp_pmufw_bsp/psu_pmu_0/lib/libxil.a] Error 2
make[1]: Leaving directory 'C:/Users/PC/XilinxWorkspace/Vitis/dummy/ppp/zynqmp_pmufw/zynqmp_pmufw_bsp'

...

make -C psu_cortexr5_0/libsrc/interleaver_v1_0/src -s include  "SHELL=CMD" "COMPILER=armr5-none-eabi-gcc" "ASSEMBLER=armr5-none
-eabi-as" "ARCHIVER=armr5-none-eabi-ar" "COMPILER_FLAGS=  -O2 -c -mcpu=cortex-r5" "EXTRA_COMPILER_FLAGS=-g -DARMR5 -Wall -Wextr
process_begin: CreateProcess(NULL, #echo "Copying 'xinterleaver_hw.h' to '../../../include/xinterleaver_hw.h'", ...) failed.
make (e=2): The system cannot find the file specified.
make[2]: *** [Makefile:40: ../../../include/xinterleaver_hw.h] Error 2
make[1]: *** [Makefile:42: psu_cortexr5_0/libsrc/interleaver_v1_0/src/make.include] Error 2
make: *** [Makefile:18: all] Error 2
a -mfloat-abi=hard -mfpu=vfpv3-d16"

Failed to build  the bsp sources for domain - standalone_domain
Failed to generate the platform.
Reason: Failed to build the  zynqmp_fsbl application.

 

0 Kudos
jeffrey.johnson
Voyager
Voyager
653 Views
Registered: ‎02-07-2008

@joancab 

The makefiles generated by Vitis HLS 2020.2 for custom IP need to be modified. They have comments in them that need to be removed (they are not being treated as comments under Windows, I don't know why). Checkout these posts:

https://forums.xilinx.com/t5/High-Level-Synthesis-HLS/Vitis-for-Windows-can-t-build-platform-for-Vitis-HLS-project/m-p/1203180


https://forums.xilinx.com/t5/High-Level-Synthesis-HLS/Bug-HLS-2020-2-generated-makefile-compilation-error-in-vitis/td-p/1206772

I scripted a fix to automatically go through all of the makefiles in a HLS project and remove the bad comments, you can see it here:

https://github.com/fpgadeveloper/ethernet-fmc-max-throughput/tree/master/HLS

Let me know if that fixes your problem.

Jeff

View solution in original post

joancab
Teacher
Teacher
631 Views
Registered: ‎05-11-2015

Yeah, that pointed me in the right direction.

I found that un-commenting these three #echo's in all makefiles in the folders with HLS-generated drivers (including domain, fsbl, pmufw folders), works. What I don't understand is why echoing characters fixes that problem. 

# Rules to compile and link
$(OBJDIR)/%.o: %.c
	echo "Compiling $@ from $<"
	$(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) -o $@ $<
$(LIB): $(OBJS)
	echo "Linking $@"
	$(ARCHIVER) $(ARCHIVER_FLAGS) -r $@ $^

# Rule to release include files
$(INCLUDEDIR)/%.h: %.h
	echo "Copying '$<' to '$@'"
	$(CP) $< $@