libnxz / power-gzip

POWER NX zlib compliant library
23 stars 18 forks source link

oct test fails due to missing minigzipsh: No such file or directory #201

Closed priyama2 closed 1 year ago

priyama2 commented 1 year ago

Trying executing oct test the following minigzipsh is missing and test fails

abcde:/home/nxgzip/nxgzip/power-gzip/oct # ./zero13M.6.compdecomp.gzip.test
+ set -eo pipefail
++ gawk '{print $1}' zero13M.checksum
+ checksum1=38ad4ad4d56a9f8e0a9aeb8670fa7acfe84939b39d7af9917a777ab71c96df30
+ [[ -z 38ad4ad4d56a9f8e0a9aeb8670fa7acfe84939b39d7af9917a777ab71c96df30 ]]
+ echo -e 'Original checksum:\t38ad4ad4d56a9f8e0a9aeb8670fa7acfe84939b39d7af9917a777ab71c96df30'
Original checksum:      38ad4ad4d56a9f8e0a9aeb8670fa7acfe84939b39d7af9917a777ab71c96df30
++ cat ./zero13M.uncompressed
++ LD_PRELOAD=/home/nxgzip/nxgzip/power-gzip/oct/../lib/.libs/libnxz.so.0
++ LD_LIBRARY_PATH=/home/nxgzip/nxgzip/power-gzip/oct:.
++ ./minigzipsh -c
++ LD_PRELOAD=/home/nxgzip/nxgzip/power-gzip/oct/../lib/.libs/libnxz.so.0
++ LD_LIBRARY_PATH=/home/nxgzip/nxgzip/power-gzip/oct:.
++ ./minigzipsh -c -d
++ /usr/bin/sha256sum -
./zero13M.6.compdecomp.gzip.test: line 18: ./minigzipsh: No such file or directory
++ gawk '{print $1}'
./zero13M.6.compdecomp.gzip.test: line 18: ./minigzipsh: No such file or directory
+ checksum2=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
abcde:/home/nxgzip/nxgzip/power-gzip/oct #
sachinmonga64 commented 1 year ago

@priyama2 : I am able to execute this script at my end.

sachin@ltcden2-lp1 oct]$ sudo ./zero13M.6.compdecomp.gzip.test
[sudo] password for sachin:
Original checksum:  38ad4ad4d56a9f8e0a9aeb8670fa7acfe84939b39d7af9917a777ab71c96df30
Final checksum:     38ad4ad4d56a9f8e0a9aeb8670fa7acfe84939b39d7af9917a777ab71c96df30

Although I assume you have created build in the oct directory using "make" However, request you to please make minigzipsh explicitly and share the output.

oct]$ make minigzipsh

Also , please share the version number of library.

]$ grep -wnr "PACKAGE_VERSION" * | grep -i Makefile
Makefile:464:PACKAGE_VERSION = 0.64
priyama2 commented 1 year ago
abcde:/home/nxgzip/nxgzip/power-gzip/oct # grep -wnr "PACKAGE_VERSION" * | grep -i Makefile
Makefile:457:PACKAGE_VERSION = 0.63
Makefile.in:457:PACKAGE_VERSION = @PACKAGE_VERSION@
abcde:/home/nxgzip/nxgzip/power-gzip/oct #  make minigzipsh
Makefile:1059: warning: overriding recipe for target 'check-am'
Makefile:870: warning: ignoring old recipe for target 'check-am'
make: *** No rule to make target 'minigzipsh'.  Stop.
abcde:/home/nxgzip/nxgzip/power-gzip/oct #
sachinmonga64 commented 1 year ago

It seems that the build is not properly made.

Please check if you followed the below steps :

1. clone libnxz code from github
2. cd power-gzip
3. ./configure
4. make
5. cd oct
6. sudo make -j12
7. sudo ./zero13M.6.compdecomp.gzip.test

If problem still persists , please share the machine details

priyama2 commented 1 year ago

The cause for the issue is the shared linked minigzipsh in oct/. is not provided Because my machine has private IP What I do currently is I clone from github to my public IP machine From public IP machine I do scp of power-gzip to my private IP machine and execute Could you please let us know what all needs to be copied to private IP machine to get this minigzip available for execution

sachinmonga64 commented 1 year ago

@priyama2 : Please let me know if you are available in Bangalore office on Monday. We can connect and check the issue.

sachinmonga64 commented 1 year ago

@priyama2 :

As discussed , First we need to build minigzip binary on the machine.
As the oct/README.md of version 0.63 also specifies

## Requirements

In order to work, oct requires 2 files:

1. Copy libnxz.so.0 to oct/.
2. Provide shared linked minigzipsh in oct/.

Since the machine is having private IP, wget https://raw.githubusercontent.com/madler/zlib/master/test/minigzip.c may not accessible there and hence 0.63 version minigzip.c should be manually copied in the oct directory and compiled further. with the below compilation commands:

gcc -DHAVE_CONFIG_H -I. -I..    -DUSE_MMAP=1 -O3 -Wall -Werror -g -mcpu=power9 -MT minigzipsh-minigzip.o -MD -MP -MF .deps/minigzipsh-minigzip.Tpo -c -o minigzipsh-minigzip.o `test -f 'minigzip.c' || echo './'`minigzip.c

mv -f .deps/minigzipsh-minigzip.Tpo .deps/minigzipsh-minigzip.Po

/bin/sh ../libtool  --tag=CC   --mode=link gcc -DUSE_MMAP=1 -O3 -Wall -Werror -g -mcpu=power9 -lz  -o minigzipsh 
minigzipsh-minigzip.o

However, it looks like minigzip.c file is also changed for 0.64 version of libnxz and older minizip.c is not available.

Hence , I recommend you to try downloading and building the 0.64version of libnxz which is the latest one and it contains the corresponding function definitions of calls used in newer minigzip.c

priyama2 commented 1 year ago

With 0.64 and scp the source file for all oct test to the private subnet machine the test works as expected. Closing ticket