Closed Baron-von-Riedesel closed 9 months ago
Should now be fixed, could you please re-try?
Build instructions are now also updated.
Hm, it tells "meson: not found"
But I cloned nasm-segelf from https://git.launchpad.net/nasm-segelf and creating the binary was no problem. Then running make for fdpp was successful.
However, trying to start dosemu gives an error:
ERROR: /usr/local/lib/dosemu/libplugin_fdpp.so: /usr/local/lib/dosemu/libplugin_fdpp.so: undefined symbol: FdppKernelLoad
ERROR: can't load fdpp
...
You need to do make clean
in
either entire dosemu tree, or only
in src/plugin/fdpp
and rebuild
the plugin.
But I cloned nasm-segelf
Have you checked that my patch improved an error msg first? Cause I didn't. :)
Have you checked that my patch improved an error msg first?
No - I wasn't aware of that nasm variant unil an hour ago.
make clean didn't help, still FdppKernelLoad isn't found.
Please show the full session of
make clean && make
inside
src/plugin/fdpp
.
Is it possible that you had fdpp sometime installed from ppa, and didn't uninstall?
possible that you had fdppsometime installed from ppa, and didn't uninstall?
Surely not.
show the full session of make clean && make inside src/plugin/fdpp.
xxx@xxx-desktop:~/dosemu2/src/plugin/fdpp$ make clean
rm -f *.o ../../../2.0-pre9/lib/libplugin_fdpp.a *.d fdppconf.hh configure *~
rm -f _fdppconf.h
xxx@xxx-desktop:~/dosemu2/src/plugin/fdpp$ make
/home/sam/dosemu2/scripts/aconf.sh /home/sam/dosemu2 /home/sam/dosemu2/src/plugin/fdpp
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I /home/sam/dosemu2/m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /usr/bin/autoconf --include=/home/sam/dosemu2/m4
autoreconf: running: /usr/bin/autoheader --include=/home/sam/dosemu2/m4
autoreconf: configure.ac: not using Automake
autoreconf: Leaving directory '.'
./configure
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for FDPP... yes
checking for VALGRIND... no
configure: valgrind support disabled
configure: creating ./config.status
config.status: creating Makefile.conf
config.status: creating _fdppconf.h
gcc -c -imacros config.hh -MD -DCFLAGS_STR=" -fplan9-extensions -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fms-extensions -pthread -Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef -Wno-address-of-packed-member -ggdb3 -fpie -O2 " -I../../../src/include -I../../../src/plugin/include -I/home/sam/dosemu2/src/base/bios/x86 -I/home/sam/dosemu2/src/include -I/home/sam/dosemu2/src/base/lib -iquote . -fplan9-extensions -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fms-extensions -pthread -Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef -Wno-address-of-packed-member -ggdb3 -fpie -O2 -fPIC -fPIC -o fdpp.o fdpp.c
gcc -c -imacros config.hh -MD -DCFLAGS_STR=" -fplan9-extensions -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fms-extensions -pthread -Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef -Wno-address-of-packed-member -ggdb3 -fpie -O2 " -I../../../src/include -I../../../src/plugin/include -I/home/sam/dosemu2/src/base/bios/x86 -I/home/sam/dosemu2/src/include -I/home/sam/dosemu2/src/base/lib -iquote . -fplan9-extensions -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fms-extensions -pthread -Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef -Wno-address-of-packed-member -ggdb3 -fpie -O2 -fPIC -fPIC -o boot.o boot.c
gcc -c -imacros config.hh -MD -DCFLAGS_STR=" -fplan9-extensions -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fms-extensions -pthread -Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef -Wno-address-of-packed-member -ggdb3 -fpie -O2 " -I../../../src/include -I../../../src/plugin/include -I/home/sam/dosemu2/src/base/bios/x86 -I/home/sam/dosemu2/src/include -I/home/sam/dosemu2/src/base/lib -iquote . -fplan9-extensions -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fms-extensions -pthread -Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef -Wno-address-of-packed-member -ggdb3 -fpie -O2 -fPIC -fPIC -o hooks.o hooks.c
gcc -pthread -rdynamic -pie -shared -o ../../../2.0-pre9/bin/libplugin_fdpp.so fdpp.o boot.o hooks.o -L/usr/local/lib/fdpp -lfdpp -lfdldr -Wl,-rpath,/usr/local/lib/fdpp -Wl,-rpath,/usr/lib/fdpp
Please show the output of
ldd ./../../2.0-pre9/bin/libplugin_fdpp.so
I've found a serious deps breakage during build. Can you update and re-build fdpp, and see if the problem persists?
Can you update and re-build fdpp, and see if the problem persists?
It does.
However, there's a message "too many levels of symbolic links" during the build ( don't know if it's a new thing, since the make process doesn't abort because of this, I might have overseen it previously ):
clang++ -o libfdpp.so.35.10 blockio.o break.o chario.o dosfns.o dsk.o error.o fatdir.o fatfs.o fattab.o fcbfns.o hmamgr.o inthndlr.o ioctl.o memmgr.o misc.o newstuff.o network.o nls.o strings.o sysclk.o systime.o task.o config.o initoem.o main.o inithma.o dyninit.o initdisk.o initclk.o prf.o share.o smalloc.o farhlp_sta.o thunks.o thunks_c.o thunks_a.o thunks_p.o dosobj.o objhlp.o ctors.o farhlp.o objtrace.o -shared -Wl,--build-id=sha1 -Wl,-soname=libfdpp.so.35.10 -Wl,-Bsymbolic
Have 47 undefined symbols
ln -sf libfdpp.so
make[1]: stat: libfdpp.so: Too many levels of symbolic links
make -C loader
make[2]: Entering directory '/home/sam/fdpp/fdpp/loader'
cc -Wall -ggdb3 -O2 -I . -I /home/sam/fdpp/include/fdpp -DFDPPKRNLDIR=/usr/local/share/fdpp -DKRNL_ELFNAME=fdppkrnl.35.10.elf -DKRNL_MAP_NAME=fdppkrnl.35.10.map -fpic -c -o elf.o /home/sam/fdpp/fdpp/loader/elf.c
cc -Wall -ggdb3 -O2 -I . -I /home/sam/fdpp/include/fdpp -DFDPPKRNLDIR=/usr/local/share/fdpp -DKRNL_ELFNAME=fdppkrnl.35.10.elf -DKRNL_MAP_NAME=fdppkrnl.35.10.map -fpic -c -o loader.o /home/sam/fdpp/fdpp/loader/loader.c
cc -o ../libfdldr.so.35.10 elf.o loader.o -shared -Wl,--build-id=sha1 -Wl,-soname=libfdldr.so.35.10 -L.. -lelf
make[2]: Leaving directory '/home/sam/fdpp/fdpp/loader'
ln -sf libfdldr.so
make[1]: stat: libfdldr.so: Too many levels of symbolic links
make -C kernel
I might have overseen it previously ):
No, its a regression, sorry for that.
meson is a primary build system, CI
isn't checking make
any more.
Fixed, can you please re-try?
ok, did a "git pull", "make clean", "make", "make install" for fdpp - no "too many levels of symbolic links" anymore, but the "undefined symbol: FddKernelLoad" error is still with me.
Please provide the ldd output I asked
above. Or just tar up the
libplugin_fdpp.so libfdpp.so.35.10 libfdldr.so.35.10
so that I can look at them myself.
Please show the output of ldd libplugin_fdpp.so
xxx@xxx-desktop:~/dosemu2/2.0-pre9/bin$ ldd libplugin_fdpp.so
linux-vdso.so.1 (0x00007fffba2c3000)
libfdpp.so.35.10 => /usr/local/lib/fdpp/libfdpp.so.35.10 (0x00007f9a21c21000)
libfdldr.so.35.10 => /usr/local/lib/fdpp/libfdldr.so.35.10 (0x00007f9a21c1c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9a21a26000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9a21800000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9a21721000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9a21701000)
libelf.so.1 => /lib/x86_64-linux-gnu/libelf.so.1 (0x00007f9a216e6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9a21d34000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9a216c7000)
libplugin_fdpp.so is not in archive.
Are you kidding? Here's the output of ldd with your plugin:
$ ldd libplugin_fdpp.so
linux-vdso.so.1 (0x00007ffe61ee0000)
libfdpp.so.35.10 => /usr/local/lib/fdpp/libfdpp.so.35.10 (0x00007fb9cae0e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb9caa00000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb9ca600000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb9cad03000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb9cacdf000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb9caf1d000)
Which is essentially NOT what you showed above. So you attached not the same file on which you did ldd. Please figure out how could that happen.
Which is essentially NOT what you showed above.
Well, these are not the same files. Actually, you said:
Can you update and re-build fdpp, and see if the problem persists?
but didn't mention that I have also - after this has been done - to redo a "make install" for dosemu2. I explicitely described what I did, btw:
ok, did a "git pull", "make clean", "make", "make install" for fdpp - no "too many levels of symbolic links" anymore, but the "undefined symbol: FddKernelLoad" error is still with me.
Now, after I did make install for dosemu2, dosemu2 starts.
There is no need to install dosemu2,
no. You can run it from "bin" inside a
build directory, but this should only
be done via the dosemu
wrapper
script. And you likely started it somehow
differently.
And you likely started it somehow differently.
I made a simple test:
result: file /usr/local/lib/dosemu/libplugin_fdpp.so is still deleted; dosemu2 won't start.
So it seems pretty obvious to me that i have to do a "make install" in dosemu2 to get that file to /usr/local/lib/dosemu.
This has nothing to do with fdpp. After you built dosemu, you don't need to install it. You can instead do:
cd bin
./dosemu
And it works.
Well, that's what is written in "building and installing": Just run make. :)
When I do this, I get:
Don't know what "brew" is supposed to do. I then copied the latest version (v1.7), which is "A very important release" and was able to run "make" and "make install" successfully ... but dosemu seems not to be too happy with that, complaining about a wrong version of fdpp.
result: a dysfunctional dosemu2 install. :)