diff --git a/configure b/configure
index 21ea16170a384e29dd1a422e6210c7a11493b6c5..cfd26f9041df24eaae9c6bb9070325ddd45b871d 100755
--- a/configure
+++ b/configure
@@ -3223,6 +3223,7 @@ cat > $TMPH <<EOF
 #define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\\n\\t"
 #define EXTERN_PREFIX "${extern_prefix}"
 #define EXTERN_ASM ${extern_prefix}
+#define SLIBSUF "$SLIBSUF"
 EOF
 
 test -n "$malloc_prefix" &&
diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c
index 1303b03c871cc2a31d12e7be7c61e6fffa9c156d..9ff325fd3803ccebcffa28f0c9ff7fc053df1fdc 100644
--- a/libavfilter/vf_frei0r.c
+++ b/libavfilter/vf_frei0r.c
@@ -192,7 +192,7 @@ static void *load_path(AVFilterContext *ctx, const char *prefix, const char *nam
 {
     char path[1024];
 
-    snprintf(path, sizeof(path), "%s%s.so", prefix, name);
+    snprintf(path, sizeof(path), "%s%s%s", prefix, name, SLIBSUF);
     av_log(ctx, AV_LOG_DEBUG, "Looking for frei0r effect in '%s'\n", path);
     return dlopen(path, RTLD_NOW|RTLD_LOCAL);
 }