-
Notifications
You must be signed in to change notification settings - Fork 199
Open
Description
If I use this repository as so :
export RM_INCLUDE_DIR=$(pwd)/7.0
make clean
make
make run
I get the following output/error :
root@cd9eedca996e:~/RedisModulesSDK# make
make -C ./example
make[1]: Entering directory '/root/RedisModulesSDK/example'
make -C ../rmutil
make[2]: Entering directory '/root/RedisModulesSDK/rmutil'
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o util.o util.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o strings.o strings.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o sds.o sds.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o vector.o vector.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o alloc.o alloc.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o periodic.o periodic.c
ar rcs librmutil.a util.o strings.o sds.o vector.o alloc.o periodic.o
make[2]: Leaving directory '/root/RedisModulesSDK/rmutil'
gcc -I/root/RedisModulesSDK/7.0 -Wall -g -fPIC -lc -lm -std=gnu99 -c -o module.o module.c
ld -o module.so module.o -shared -Bsymbolic -L../rmutil -lrmutil -lc
make[1]: Leaving directory '/root/RedisModulesSDK/example'
cp ./example/module.so .
root@cd9eedca996e:~/RedisModulesSDK# make run
redis-server --loadmodule ./module.so
4775:C 12 Aug 2024 17:11:11.052 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4775:C 12 Aug 2024 17:11:11.052 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=4775, just started
4775:C 12 Aug 2024 17:11:11.052 * Configuration loaded
4775:M 12 Aug 2024 17:11:11.052 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 7.2.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 4775
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
4775:M 12 Aug 2024 17:11:11.053 # Module ./module.so failed to load: ./module.so: undefined symbol: RedisModule_TryCalloc
4775:M 12 Aug 2024 17:11:11.053 # Can't load module from ./module.so: server aborting
make: *** [Makefile:27: run] Error 1
But, If I download the redismodule.h
file from the redis repo 7.2
branch, everything works fine, solving my problem.
root@cd9eedca996e:~/RedisModulesSDK# curl https://raw.githubusercontent.com/redis/redis/7.2/src/redismodule.h
-O
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 99677 100 99677 0 0 555k 0 --:--:-- --:--:-- --:--:-- 556k
root@cd9eedca996e:~/RedisModulesSDK# make clean
rm -rf *.xo *.so *.o
rm -rf ./example/*.xo ./example/*.so ./example/*.o
rm -rf ./rmutil/*.so ./rmutil/*.o ./rmutil/*.a
root@cd9eedca996e:~/RedisModulesSDK# make
make -C ./example
make[1]: Entering directory '/root/RedisModulesSDK/example'
make -C ../rmutil
make[2]: Entering directory '/root/RedisModulesSDK/rmutil'
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o util.o util.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o strings.o strings.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o sds.o sds.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o vector.o vector.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o alloc.o alloc.c
gcc -g -fPIC -O3 -std=gnu99 -Wall -Wno-unused-function -I/root/RedisModulesSDK/7.0 -c -o periodic.o periodic.c
ar rcs librmutil.a util.o strings.o sds.o vector.o alloc.o periodic.o
make[2]: Leaving directory '/root/RedisModulesSDK/rmutil'
gcc -I/root/RedisModulesSDK/7.0 -Wall -g -fPIC -lc -lm -std=gnu99 -c -o module.o module.c
ld -o module.so module.o -shared -Bsymbolic -L../rmutil -lrmutil -lc
make[1]: Leaving directory '/root/RedisModulesSDK/example'
cp ./example/module.so .
root@cd9eedca996e:~/RedisModulesSDK# make run
redis-server --loadmodule ./module.so
4920:C 12 Aug 2024 17:15:19.514 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4920:C 12 Aug 2024 17:15:19.514 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=4920, just started
4920:C 12 Aug 2024 17:15:19.514 * Configuration loaded
4920:M 12 Aug 2024 17:15:19.514 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 7.2.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 4920
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
4920:M 12 Aug 2024 17:15:19.515 * Module 'example' loaded from ./module.so
4920:M 12 Aug 2024 17:15:19.515 * Server initialized
4920:M 12 Aug 2024 17:15:19.515 * Loading RDB produced by version 7.2.5
4920:M 12 Aug 2024 17:15:19.515 * RDB age 12 seconds
4920:M 12 Aug 2024 17:15:19.515 * RDB memory usage when created 0.84 Mb
4920:M 12 Aug 2024 17:15:19.515 * Done loading RDB, keys loaded: 0, keys expired: 0.
4920:M 12 Aug 2024 17:15:19.515 * DB loaded from disk: 0.000 seconds
4920:M 12 Aug 2024 17:15:19.515 * Ready to accept connections tcp
I'd give you a PR but:
- I don't fully understand your intent/release matching pattern
- I'm very basic in the c space.
Best of luck
Bryan
Metadata
Metadata
Assignees
Labels
No labels