diff --git a/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch b/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
index 2529d5d9d1..356ef8b469 100644
--- a/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
+++ b/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
@@ -21,31 +21,31 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
 
 --- a/GNUmakefile
 +++ b/GNUmakefile
-@@ -170,12 +170,12 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.
+@@ -311,12 +311,12 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.
  JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
- JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
- 
--CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
-+CFLAGS=-O2 -fPIC -W -Wall -Wmissing-prototypes -Wmissing-declarations
+ JAVA_RUNTIME_CLASSES=$(JAVA_RUNTIME_SOURCES:.java=.class)
+
+-CFLAGS=-g -O2 -W -Wall -Wcast-qual -Wmissing-prototypes -Wmissing-declarations -Wshadow $(WERROR)
++CFLAGS=-g -O2 -fPIC -W -Wall -Wcast-qual -Wmissing-prototypes -Wmissing-declarations -Wshadow $(WERROR)
  CPPFLAGS=
- 
+
  INCLUDES=-Iinclude
- 
+
 -all: snowball$(EXEEXT) libstemmer.a stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
 +all: snowball$(EXEEXT) libstemmer.a libstemmer.so stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
- 
- algorithms.mk: libstemmer/mkalgorithms.pl libstemmer/modules.txt
- 	libstemmer/mkalgorithms.pl algorithms.mk libstemmer/modules.txt
-@@ -225,6 +225,9 @@ libstemmer/libstemmer.o: libstemmer/modu
+
+ algorithms.mk: GNUmakefile libstemmer/mkalgorithms.pl $(MODULES)
+ 	libstemmer/mkalgorithms.pl algorithms.mk $(MODULES)
+@@ -424,6 +424,9 @@ libstemmer/libstemmer.o: libstemmer/modu
  libstemmer.a: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
- 	$(AR) -cru $@ $^
- 
+ 	$(AR) $(ARFLAGS) $@ $^
+
 +libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
 +	$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^
 +
  examples/%.o: examples/%.c
  	$(CC) $(CFLAGS) $(INCLUDES) $(CPPFLAGS) -c -o $@ $<
- 
+
 --- /dev/null
 +++ b/libstemmer/symbol.map
 @@ -0,0 +1,6 @@
diff --git a/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb b/meta-oe/recipes-support/libstemmer/libstemmer_3.1.1.bb
similarity index 79%
rename from meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
rename to meta-oe/recipes-support/libstemmer/libstemmer_3.1.1.bb
index d462d3018f..784b5b402d 100644
--- a/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
+++ b/meta-oe/recipes-support/libstemmer/libstemmer_3.1.1.bb
@@ -1,14 +1,14 @@
 SUMMARY = "Snowball compiler and stemming algorithms"
 HOMEPAGE = "https://snowballstem.org/"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=19139aaf3c8c8fa1ca6edd59c072fb9f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=07c3b61d971c3df6e19ce439cfe1fb8c"
 
 DEPENDS:append:class-target = " ${BPN}-native"
 
-SRC_URI = "git://github.com/snowballstem/snowball.git;branch=master;protocol=https \
+SRC_URI = "git://github.com/snowballstem/snowball.git;branch=main;protocol=https;tag=v${PV} \
            file://0001-Build-so-lib.patch \
            "
-SRCREV = "48a67a2831005f49c48ec29a5837640e23e54e6b"
+SRCREV = "cd195b51e948a902a4312f023f4a14392516a543"
 
 LIBVER = "0.0.0"
 
