Solved ld: error: undefined symbol: soap_open_logfile error while compiling VirtualBOX

Hello.

I was trying to virtualize Windows 10 with VirtualBOX on :

Code:
# freebsd-version -kru
13.1-RELEASE
13.1-RELEASE
13.1-RELEASE

# uname -aKU

FreeBSD marietto 13.1-RELEASE FreeBSD 13.1-RELEASE n250232-e981f9a8e335 GENERIC
amd64 1301000 1301000

,but I've got this error :

Screenshot_2022-06-12_22-04-15.jpg


at this point I've removed virtualbox-ose 6.1.34 from the packages and I tried to compile it from the sources. So,I did :

Code:
pkg remove virtualbox-ose
portsnap fetch
portsnap extract
portsnap fetch update

and then I've started the compilation of virtualbox-ose but at some point I've got this error :

Code:
@marietto:/usr/ports/emulators/virtualbox-ose # make clean
@marietto:/usr/ports/emulators/virtualbox-ose # make

ld: error: undefined symbol: soap_open_logfile
>>> referenced by soapC-1.cpp:20199 (out/freebsd.amd64/debug/obj/webservice/soapC-1.cpp:20199)
>>>               soapC-1.o:(soap_ignore_element(soap*)) in archive /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a
>>> referenced by soapC-1.cpp:20203 (out/freebsd.amd64/debug/obj/webservice/soapC-1.cpp:20203)
>>>               soapC-1.o:(soap_ignore_element(soap*)) in archive /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a
>>> referenced by soapC-1.cpp:20212 (out/freebsd.amd64/debug/obj/webservice/soapC-1.cpp:20212)
>>>               soapC-1.o:(soap_ignore_element(soap*)) in archive /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a
>>> referenced 14595 more times
c++: error: linker command failed with exit code 1 (use -v to see invocation)
kmk: *** [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/webtest/webtest] Error 1
The failing command:
        @c++  -g                   '-Wl,-rpath,/usr/local/lib/virtualbox'   -Wl,-z,noexecstack,-z,relro -Wl,--as-needed -m64   -o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/webtest/webtest /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/webtest/webtest.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/webtest/gen/webservice/soapClient.o   -L/usr/local/lib   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a   -lgsoapssl++   -lz   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/bin/VBoxRT.so   -lpthread   -lssl   -lcrypto
kmk: *** Waiting for unfinished jobs....
ld: error: undefined symbol: soap_open_logfile
>>> referenced by soapC-1.cpp:20199 (out/freebsd.amd64/debug/obj/webservice/soapC-1.cpp:20199)
>>>               soapC-1.o:(soap_ignore_element(soap*)) in archive /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a
>>> referenced by soapC-1.cpp:20203 (out/freebsd.amd64/debug/obj/webservice/soapC-1.cpp:20203)
>>>               soapC-1.o:(soap_ignore_element(soap*)) in archive /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a
>>> referenced by soapC-1.cpp:20212 (out/freebsd.amd64/debug/obj/webservice/soapC-1.cpp:20212)
>>>               soapC-1.o:(soap_ignore_element(soap*)) in archive /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a
>>> referenced 14595 more times
c++: error: linker command failed with exit code 1 (use -v to see invocation)
kmk: *** [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/vboxwebsrv/vboxwebsrv] Error 1
The failing command:
        @c++  -g                   '-Wl,-rpath,/usr/local/lib/virtualbox'   -Wl,-z,noexecstack,-z,relro -Wl,--as-needed -m64   -o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/vboxwebsrv/vboxwebsrv /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/vboxwebsrv/vboxweb.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/vboxwebsrv/gen/webservice/methodmaps.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/vboxwebsrv/gen/webservice/soapServer.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/vboxwebsrv/gen/webservice/vboxweb-wsdl.o   -L/usr/local/lib   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/vboxsoap.a   -lgsoapssl++   -lz   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/bin/VBoxRT.so   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/bin/VBoxRT.so   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/lib/VBoxCOM.a   /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/bin/VBoxXPCOM.so   -lssl   -lcrypto
96 warnings generated.
107 warnings generated.
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (Web2C 2021) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (Web2C 2021) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (Web2C 2021) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
102 warnings generated.
kBuild: Fresh LaTeX-generated PDF is now at /usr/ports/emulators/virtualbox-ose/work/VirtualBox-6.1.34/out/freebsd.amd64/debug/obj/manual/en_US/UserManual.pdf
kmk: *** Exiting with status 2
*** Error code 2

Stop.
make[1]: stopped in /usr/ports/emulators/virtualbox-ose
*** Error code 1

At this point I don't know what to do anymore. Someone recently has got this error ? Any idea about how to fix it ? thanks.
 

Attachments

  • Screenshot_2022-06-12_22-04-15.jpg
    Screenshot_2022-06-12_22-04-15.jpg
    189.8 KB · Views: 162
  • Screenshot_2022-06-12_22-04-15.jpg
    Screenshot_2022-06-12_22-04-15.jpg
    186.7 KB · Views: 157
that's the point. The first time it offered to me a choice between webservice and or debug and I made a mistake. So,I tried to clean the wrong choices giving a "make clean ",but it restarts the compilation giving for granted that I want to convalidate those wrong choices. Usually it shows a gui where I can choose which options I want for the compilation,but that gui appeared only the first time. I suppose that I should reset some values to make that gui to show again ? do you know how to do that ?
 
Read ports(7)

Code:
     config         Configure OPTIONS for this port using dialog4ports(1).
...
     showconfig           Display OPTIONS config for this port.
...
     rmconfig             Remove OPTIONS config for this port.

     rmconfig-recursive   Remove OPTIONS config for this port and all its
                          dependencies.
 
Sorry,this is exactly the kind of informations that my brain refuses to understand and manage. There are too many unknown options that I don't understand how to correlate between each other. I told so many times that I'm not able to get any help by reading the man pages. They are an ultra condensate of informations that are not easy to manage by those people who haven't had an education in computer science. So,if you want to help me,can you explain to me how can the GUI shows again ? Which values should I reset ? This is the shortest root. Even because there are a lot of other tasks that I should accomplish. So,I need that certain concepts are simplified otherwise I get freeze and irritate.
 
I'm not sure but I suspect that I've been able to compiled virtualbox-ose from ports because I did :

Code:
cd /usr/ports/devel/gsoap
make clean
make deinstall


but unfortunately,even if the compilation is good,this error persists :

Code:
KLD vboxdrv.ko: depends on kernel - not available or version mismatch
linker_load_file: /boot/modules/vboxdrv.ko - unsupported file type
 
The solution for building a vboxdrv.ko module for freebsd 13.1 is the following :

Code:
cd /use/ports/emulators/virtualbox-ose-kmod
make deinstall
make install clean
 
It is a test of dialog(1).
dialog --title 'Message' --msgbox 'Mario is leet!' 5 20
Plug that line into your command prompt.
I am trying to show how powerful dialog is.
In 54 characters on the command prompt it produces an application.
dialog4ports(1) is a dialog(3) program created for ports managment.
So while dialog(1) creates output from the command line, dialog(3) needs compiling to create applications.

FreeBSD installer uses dialog. So you should be somewhat familiar with it.
 
Back
Top