[Custom Build][OBS] Difference in symbol lookup?

I have build some library by mu build system (using make/gcc) and OBS. Problem is, on the same distribution, entities installed by make, sudo make install worked, but not from installed packages, except giving path to library by LD_PRELOAD environment variable.


include ../../tao-build-config 

fch:=$(call substr,$(objdir),1,1)

ifneq ( $(fch), '/')
objdir:=../../$(objdir)
endif


targets!=( for a in *.c; do echo "$(objdir)Modules/GTK+-4/$$a" | sed  -e 's/\.c /\.o /g' | sed -e  's/\.c$$/\.o/g'; done;  )


tao-module: $(targets)
	gcc $(CFLAGS) -Wl,-z,noexecstack -g -shared -Wl,-soname,tao-gtk-4.so.1 -o tao-gtk-4.so.1.0 `pkg-config --cflags gtk4 --libs gtk4` `pkg-config --cflags cairo --libs cairo` `pkg-config --cflags sdl2 --libs sdl2` `pkg-config --cflags SDL2_image --libs SDL2_image` $(objdir)debug.o $(objdir)/Modules/GTK+-4/*.o  $(objdir)Modules/common/data_ctr_common.o $(objdir)Modules/common/api_listing.o
	cp tao-gtk-4.so.1.0  $(objdir)Modules

$(objdir)Modules/GTK+-4/%.o: %.c
	@echo Compiling $< into $@
	gcc $(CFLAGS) -Wl,-z,noexecstack -g -fPIC `pkg-config --cflags gtk4 --libs gtk4` `pkg-config --cflags cairo --libs cairo` `pkg-config --cflags sdl2 --libs sdl2` `pkg-config --cflags SDL2_image --libs SDL2_image` -c $<   -o $@

clean:
	rm $(objdir)Modules/GTK+-4/*.o
	rm $(objdir)Modules/*.so*

../../tao-build-config:
	make -C ../.. configure

Above is Modules/GTK±4/Makefile content.
Below is ./Makefile content:

CFLAGS?=
TAO_LIB=libgreattao.so.2.0
PROGPATH?=Demos/główny.o
PROGPARAMS?=
INSTALLPATH?="/usr/local/"
DESIGNPATHNORMAL=$(INSTALLPATH)"/share/tao-design/"
DESIGNPATHTEST="./tao-design/"
LIBSELL_LINK=-lsell
a!=uname -m
lib64!=[ ${a} == "x86_64" ] && echo 64 || echo
libnotify?=false
objdir?=
name_of_config:="tao-build-config"
content :=$(file < ${name_of_config})
include tao-build-config

ifndef objdir
objdir:=./
else
objdir:=$(objdir)/
endif

ifeq ($(libnotify),true)
ADDFLAGS=-DWITHLIBNOTIFY -lnotify
endif

targets!=( for a in *.c; do echo "$(objdir)$$a" | sed  -e 's/\.c /\.o /g' | sed -e  's/\.c$$/\.o/g'; done; for a in template-processing/*.c; do echo "$(objdir)$$a"| sed  -e 's/\.c /\.o /g' | sed -e  's/\.c$$/\.o/g';  done; for a in strings-processing/*.c; do  echo "$(objdir)$$a"| sed  -e 's/\.c /\.o /g' | sed -e  's/\.c$$/\.o/g'; done; for a in frame/*.c; do  echo $(objdir)$$a | sed  -e 's/\.c /\.o /g' | sed -e  's/\.c$$/\.o/g'; done )

$(objdir)frame/%.o: frame/%.c frame/%.h
	gcc $(CFLAGS) $(ADDFLAGS) -fvisibility=hidden -o $@ -ggdb -O0 -fPIC -c $< -ldl -DINSTALLPATH=\"${INSTALLPATH}\" -lpthread -lreadconfig `pkg-config --cflags sdl2 --libs sdl2``pkg-config --cflags SDL2_image --libs SDL2_image` ; 
$(objdir)template-processing/%.o: template-processing/%.c  template-processing/%.h
	gcc $(CFLAGS) $(ADDFLAGS) -fvisibility=hidden -o $@ -ggdb -O0 -fPIC -c $< -ldl -DINSTALLPATH=\"${INSTALLPATH}\" -lpthread -lreadconfig `pkg-config --cflags sdl2 --libs sdl2``pkg-config --cflags SDL2_image --libs SDL2_image`; 
$(objdir)strings-processing/%.o: strings-processing/%.c string-proceessing/%.h
	gcc $(CFLAGS) $(ADDFLAGS) -fvisibility=hidden -o $@ -ggdb -O0 -fPIC -c $< -ldl -DINSTALLPATH=\"${INSTALLPATH}\" -lpthread -lreadconfig `pkg-config --cflags sdl2 --libs sdl2``pkg-config --cflags SDL2_image --libs SDL2_image`; 

$(objdir)%.o: %.c
	gcc $(CFLAGS) $(ADDFLAGS) -DDESIGNPATH="\"$(DESIGNPATH)\"" -fvisibility=hidden -o $@ -ggdb -O0 -fPIC -c $< -ldl -DINSTALLPATH=\"${INSTALLPATH}\" -lpthread -lreadconfig `pkg-config --cflags sdl2 --libs sdl2``pkg-config --cflags SDL2_image --libs SDL2_image` 


normal: DESIGNPATH=${DESIGNPATHNORMAL}
normal:
	echo Normal Compilation
normal: necessary $(objdir)${TAO_LIB}

show_design_path:
	echo DESIGNPATH IS ${DESIGNPATH}


necessary:
	make -C Modules/common

tao-build-config configure:
	@echo -e "CFLAGS=$(CFLAGS)\nPROGPATH=$(PROGPATH)\nPROGPARAMS=$(PROGPARAMS)\nINSTALLPATH=$(INSTALLPATH)\nDESIGNOPATHNORMAL=$(DESIGNPATHNORMAL)\nDESIGNPATHTEST=$(DESIGNPATHTEST)\nobjdir=$(objdir)" > ${name_of_config}
	mkdir -p $(objdir)frame
	mkdir -p $(objdir)template-processing
	mkdir -p $(objdir)strings-processing
	mkdir -p $(objdir)Modules
	mkdir -p $(objdir)Modules/common
	for a in Modules/*; do \
		if [[ -d "$$a" ]]; then \
			mkdir -p $(objdir)"$${a}"; \
		fi; \
	done

$(objdir)$(TAO_LIB): show_design_path $(objdir)tao.o $(objdir)multilisted.o $(objdir)debug.o $(targets)
	gcc $(CFLAGS) -fPIC -Wl,--format=binary  -Wl,tao2xsltTrans -Wl,--format=default -Wl,-z,noexecstack -O0 -ggdb  -shared -Wl,-soname,libgreattao.so -o libgreattao.so.2.0 $(objdir)*.o $(objdir)template-processing/*.o $(objdir)strings-processing/*.o $(objdir)frame/*.o -ldl $(LIBSELL_LINK) $(objdir)Modules/common/data_ctr_common.o   $(objdir)Modules/common/timers.o  -lpthread -lreadconfig `pkg-config --cflags sdl2 --libs sdl2`  `pkg-config --cflags SDL2_image --libs SDL2_image` `pkg-config --cflags libxslt --libs libxslt` `pkg-config --cflags libexslt --libs libexslt` -o $@
	ln -fs libgreattao.so.2.0 $(objdir)libgreattao.so.2
	ln -fs libgreattao.so.2 $(objdir)libgreattao.so

$(objdir)tao.o: *.c  common/debug.c
	gcc $(CFLAGS) -fvisibility=hidden -ggdb -O0 -fPIC -c common/debug.c
	
$(objdir)multilisted.o:
	gcc $(CFLAGS) -ggdb -c -fPIC common/multi_listed.c -o $(objdir)multilisted.o

$(objdir)debug.o:
	gcc $(CFLAGS) -ggdb -c -fPIC common/debug.c -o $(objdir)debug.o	

clean:
	rm $(objdir)/Modules/common/*.o
	rm $(objdir)/*.o
	rm $(objdir)/libgreattao.so*

depends:
	@echo Missing libraries needed to compile engine of libgreattao
	@pkg-config --cflags SDL2_image --libs SDL2_image > /dev/null
	@pkg-config --cflags openssl --libs openssl > /dev/null
	@echo Missing libraries needed to compile Gtk+2.0 backend of libgreattao
	@pkg-config --cflags gtk+-2.0 --libs gtk+-2.0 > /dev/null
	@echo Missing libraties needed to compile Qt backend of libgreattao
	@pkg-config --cflags QtGui --libs QtGui > /dev/null

prepare-for-tests:
	mkdir -p $(objdir)/mWidgets_modules
	cp $(objdir)/Modules/tao-*.so.1.0 $(objdir)/mWidgets_modules
	ln -fs $(objdir)/tao-gtk.so.1.0 $(objdir)/mWidgets_modules/tao-gtk.so
	ln -fs $(objdir)/tao-Qt5.so.1.0 $(objdir)/mWidgets_modules/tao-Qt5.so

test-int1:
	echo Performing test - maybe with compilation

test: DESIGNPATH=${DESIGNPATHTEST}
test: test-int1 prepare-for-tests $(objdir)$(TAO_LIB)
	LD_LIBRARY_PATH="${objdir}":"${LD_LIBRARY_PATH}" "${PROGPATH}" ${PROGPARAMS}
debug: prepare-for-tests
	LD_LIBRARY_PATH="${objdir}}":"${LD_LIBRARY_PATH}" gdb --args "${PROGPATH}" ${PROGPARAMS}

install:
	mkdir -p ${INSTALLPATH}/share/tao-design
	cp -r ./tao-design/* ${INSTALLPATH}/share/tao-design
	cp -r tao-design ${INSTALLPATH}/share
	mkdir -p ${INSTALLPATH}/lib${lib64}/mWidgets_modules
	cp  $(objdir)/Modules/tao-*.so.1.0 -t ${INSTALLPATH}/lib${lib64}/mWidgets_modules
	ln -fs ./tao-Qt5.so.1.0 ${INSTALLPATH}/lib${lib64}/mWidgets_modules/tao-Qt5.so
	ln -fs ./tao-gtk.so.1.0 ${INSTALLPATH}/lib${lib64}/mWidgets_modules/tao-gtk.so.1
	ln -fs ./tao-gtk.so.1 ${INSTALLPATH}/lib${lib64}/mWidgets_modules/tao-gtk.so
	cp   $(objdir)/libgreattao.so* ${INSTALLPATH}/lib${lib64}
	mkdir -p ${INSTALLPATH}/include/libgreattao
	cp Includes/tao.h ${INSTALLPATH}/include/libgreattao
	cp Includes/config.h ${INSTALLPATH}/include/libgreattao
	cp Includes/network.h ${INSTALLPATH}/include/libgreattao
	cp Includes/log.h ${INSTALLPATH}/include/libgreattao
	cp Includes/loop.h ${INSTALLPATH}/include/libgreattao
all:
	make
	make -C Demos
	make -C Modules
	make test

And tao-build-config content:

CFLAGS=
PROGPATH=Demos/główny.o
PROGPARAMS=
INSTALLPATH=/usr/local/
DESIGNOPATHNORMAL=/usr/local/share/tao-design/
DESIGNPATHTEST=./tao-design/
objdir=./build///////////////////

So I make:

make
make -C Modules/GTK+-4
sudo make install

I know, there is a lot of code/information, but if somebody take a look. Especially, I think maybe it is related to pkg-config, but I build packages for Tumbleweed and build by my build system on Tumbleweed.
And spec file:

#
# spec file for package libsell
#
# Copyright (c) 2022 Sławomir Lach <slawek@lach.art.pl>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:       libgreattao
Version:    2.85.9
Release:    0.0.1
Summary:    This package providces core of GUI generating library
License:      GPL-3.0-or-later
BuildRequires: make gcc SDL2_image-devel libxslt-devel libreadconfig-devel libsell-devel
Requires:  libgreattao-module
URL:        https://sourceforge.net/projects/libgreattao
Source0:    https://sourceforge.net/projects/libgreattao/files/Sources/libgreattao-%{version}.tar.gz

%description
Libgreattao-core is a core of library to dynamically generate UI. This helps developers to not create applications, which differs only in UI and focus on implementing of functionality.

%package devel
Summary:        Development Package for %{name}
Requires:       %{name} = %{version}

%description devel
This package providces core of GUI generating library

This package contains the header file.

%package module-gtk+-4
Summary: Module GTK+ for libgreattao
Requires: %{name}
BuildRequires:  gtk4-devel
Provides: libgreattao-module

%description module-gtk+-4
This package providces module of GUI generating library

This package contains the GTK+-4 module

%package module-console
Summary: Console Module for libgreattao
Requires: %{name}
Provides: libgreattao-module

%description module-console
This package providces module of GUI generating library

This package contains the console module

%prep
%autosetup -n libgreattao-%{version}

%build
cd Modules/common 
%make_build CFLAGS="%{optflags}"
cd ../..
%make_build CFLAGS="%{optflags}" INSTALLPATH=/usr
cd Modules/GTK+-4
%make_build CFLAGS="%{optflags}"
cd ../console
%make_build CFLAGS="%{optflags}"


%install
mkdir -p %{buildroot}/%{_libdir}
mkdir -p %{buildroot}/%{_includedir}/libgreattao
mkdir -p %{buildroot}/%{_libdir}/mWidgets_modules
mkdir -p %{buildroot}/usr/share/
cp -r tao-design %{buildroot}/usr/share/
install -m0755 libgreattao.so.2.0 %{buildroot}/%{_libdir}/libgreattao.so.2.0
install -m0644 Includes/config.h %{buildroot}/%{_includedir}/libgreattao/config.h
install -m0644 Includes/loop.h %{buildroot}/%{_includedir}/libgreattao/loop.h
install -m0644 Includes/log.h %{buildroot}/%{_includedir}/libgreattao/log.h
install -m0644 Includes/network.h %{buildroot}/%{_includedir}/libgreattao/network.h
install -m0644 Includes/tao.h %{buildroot}/%{_includedir}/libgreattao/tao.h
install -m0755 Modules/tao-gtk-4.so.1.0 %{buildroot}/%{_libdir}/mWidgets_modules/tao-gtk-4.so.1.0
install -m0755 Modules/tao-console.so.1.0 %{buildroot}/%{_libdir}/mWidgets_modules/tao-console.so.1.0

%post -p /sbin/ldconfig


%postun -p /sbin/ldconfig

%files
%license LICENSE
%{_libdir}/libgreattao.so.2.0
%dir %{_libdir}/mWidgets_modules
/usr/share/tao-design

%files devel
%{_includedir}/libgreattao

%files module-gtk+-4
/%{_libdir}/mWidgets_modules/tao-gtk-4.so.1.0

%files module-console
/%{_libdir}/mWidgets_modules/tao-console.so.1.0

%changelog

On VM (where I install packages):

> ldd /usr/lib64/mWidgets_modules/tao-gtk-4.so.1.0 
        linux-vdso.so.1 (0x00007ffd0619c000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f4df0c00000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4df0fc6000)

But:

> ldd ./Modules/tao-gtk+-4.so.1.0
   libgtk-4.so.1 => /lib64/libgtk-4.so.1 (0x00007fbd937eb000)
        libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007fbd937db000)
        libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007fbd93772000)
        libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fbd93663000)
        libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007fbd93636000)
        libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x00007fbd9362b000)
        libcairo.so.2 => /lib64/libcairo.so.2 (0x00007fbd934f4000)
        libvulkan.so.1 => /lib64/libvulkan.so.1 (0x00007fbd9347f000)
        libgraphene-1.0.so.0 => /lib64/libgraphene-1.0.so.0 (0x00007fbd93462000)
        libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fbd93271000)
        libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007fbd9320f000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fbd930c7000)
        libSDL2-2.0.so.0 => /lib64/libSDL2-2.0.so.0 (0x00007fbd92ef9000)
        libSDL2_image-2.0.so.0 => /lib64/libSDL2_image-2.0.so.0 (0x00007fbd92ed8000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbd92ed3000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fbd92cd0000)
        libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007fbd92cc9000)
        libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007fbd92ca9000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fbd92c5b000)
        libepoxy.so.0 => /lib64/libepoxy.so.0 (0x00007fbd92b25000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fbd92a3e000)
        libXi.so.6 => /lib64/libXi.so.6 (0x00007fbd92a28000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007fbd928e2000)
        libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007fbd928c9000)
        libcloudproviders.so.0 => /lib64/libcloudproviders.so.0 (0x00007fbd928b0000)
        libtracker-sparql-3.0.so.0 => /lib64/libtracker-sparql-3.0.so.0 (0x00007fbd927d3000)
        libpng16.so.16 => /lib64/libpng16.so.16 (0x00007fbd9278a000)
        libtiff.so.6 => /lib64/libtiff.so.6 (0x00007fbd926ff000)
        libjpeg.so.8 => /lib64/libjpeg.so.8 (0x00007fbd92667000)
        libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007fbd92620000)
        libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007fbd9260e000)
        libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007fbd92609000)
        libXext.so.6 => /lib64/libXext.so.6 (0x00007fbd925f4000)
        libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007fbd925e5000)
        libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007fbd925e0000)
        libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007fbd925d8000)
        libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007fbd925cb000)
        libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007fbd925c6000)
        libcairo-script-interpreter.so.2 => /lib64/libcairo-script-interpreter.so.2 (0x00007fbd925a1000)
        libthai.so.0 => /lib64/libthai.so.0 (0x00007fbd92593000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fbd924d5000)
        libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fbd924b4000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fbd9249a000)
        libXrender.so.1 => /lib64/libXrender.so.1 (0x00007fbd9248d000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fbd9245f000)
        libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fbd92450000)
        libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007fbd9244b000)
        libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007fbd9239a000)
        libmount.so.1 => /lib64/libmount.so.1 (0x00007fbd9234e000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fbd92321000)
        libffi.so.8 => /lib64/libffi.so.8 (0x00007fbd92314000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fbd9226d000)
        libasound.so.2 => /lib64/libasound.so.2 (0x00007fbd92163000)
        libjxl.so.0.8 => /lib64/libjxl.so.0.8 (0x00007fbd91d90000)
        libwebp.so.7 => /lib64/libwebp.so.7 (0x00007fbd91d22000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbd93ff1000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fbd91cf4000)
        libjson-glib-1.0.so.0 => /lib64/libjson-glib-1.0.so.0 (0x00007fbd91cca000)
        libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fbd91b59000)
        libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007fbd919fb000)
        libzstd.so.1 => /lib64/libzstd.so.1 (0x00007fbd91943000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fbd9190a000)
        libjbig.so.2 => /lib64/libjbig.so.2 (0x00007fbd918fd000)
        libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007fbd918f4000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fbd918db000)
        libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007fbd918ce000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007fbd918c7000)
        libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fbd9188c000)
        libhwy.so.1 => /lib64/libhwy.so.1 (0x00007fbd91881000)
        libbrotlienc.so.1 => /lib64/libbrotlienc.so.1 (0x00007fbd917ef000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fbd915a5000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fbd9157e000)
        libsharpyuv.so.0 => /lib64/libsharpyuv.so.0 (0x00007fbd91576000)
        libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007fbd91553000)

Done!
There was bad module/object order in GTK±4 module’s Makefile. Simply pkg-config and -o directives must be reordered.
I remember, I post information about gcc in distribution and OBS behaves different and somebody told me, he/she will take care of that. That was long ago and I though, it was done. Maybe this is nice feature, but it is inconsistent. I must learn to not rely non standard and specific behavior of software.