joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.83k stars 383 forks source link

Slackware(64) 14.2 - How Compile ? #3288

Closed inukaze closed 2 years ago

inukaze commented 2 years ago

Hi there again. i am trying compile the latest source code under Slackware(64) 14.2

i had do the follow, open a terminal and use the follow commands :

echo "First intall GUILib from SDL1.2"
cd /tmp/
wget -c 'https://www.libsdl.org/projects/GUIlib/src/GUIlib-1.2.1.tar.gz'
tar xfz GUIlib-1.2.1.tar.gz
cd GUIlib-1.2.1
./configure --prefix=/usr
make all
su -c "make install ; ldconfig" root

echo 'Solve the error "RetroWaveLib/Platform/Linux_SPI.h:37:24: error fatal: linux/gpio.h: No existe el fichero o el directorio" '

su -c "ln -s /usr/src/linux/include/asm-generic/gpio.h /usr/include/linux/gpio.h" root
echo 'Download latest github source code of dosbox-x'
cd /media/72GB/tmp/src/
git clone --recurse-submodules https://github.com/joncampbell123/dosbox-x
cd dosbox-x
git submodule update --init --recursive ; git submodule update --recursive
git pull --recurse-submodules
./cleanup

editor ./src/dos/dos_programs.cpp 

Inside i add the line #include <cmath>

save changes and close file, and go back to the terminal

cd vs/sdlnet
./build-dosbox.sh
cd ../..

cd vs/sdl
./build-dosbox.sh
cd ../..

PREFIJO="/media/Compartido/Videojuegos/Linux/Emulador/dosbox-x_git/sdl1"
mkdir -p "$PREFIJO"

./autogen.sh
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO" 
make all

make all output

Making all in serialport
make[4]: se entra en el directorio '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
depbase=`echo directserial.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../include -Wno-int-to-void-pointer-cast   -Wno-address-of-packed-member   -Wno-format-zero-length   -Wno-missing-field-initializers   -Wno-strict-aliasing   -Wno-implicit-fallthrough   -Wno-deprecated-declarations   -Wconversion-null   -Wsign-promo   -Wlogical-op   -pedantic   -Wunused   -Wextra   -Wall   -I/media/72GB/tmp/src/dosbox-x/vs/sdl/linux-host/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -g -std=gnu++14  -O2 -msse  -Wall   -Wextra   -Wunused   -pedantic   -Wlogical-op   -Wsign-promo   -Wconversion-null   -Wno-deprecated-declarations   -Wno-implicit-fallthrough   -Wno-strict-aliasing   -Wno-missing-field-initializers   -Wno-format-zero-length   -Wno-address-of-packed-member   -Wno-int-to-void-pointer-cast  -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L  -MT directserial.o -MD -MP -MF $depbase.Tpo -c -o directserial.o directserial.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from directserial.cpp:27:0:
misc_util.h:176:40: error: la conversión a ‘std::queue<unsigned char>’ desde la lista del inicializador usaría el constructor explícito ‘std::queue<_Tp, _Sequence>::queue(_Sequence&&) [with _Tp = unsigned char; _Sequence = std::deque<unsigned char, std::allocator<unsigned char> >]’
  std::queue<uint8_t>  receiveBuffer = {};
                                        ^
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-int-to-void-pointer-cast’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-address-of-packed-member’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-implicit-fallthrough’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-implicit-fallthrough’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-address-of-packed-member’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-int-to-void-pointer-cast’
Makefile:368: fallo en las instrucciones para el objetivo 'directserial.o'
make[4]: *** [directserial.o] Error 1
make[4]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: fallo en las instrucciones para el objetivo 'all-recursive'
make[3]: *** [all-recursive] Error 1
make[3]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: fallo en las instrucciones para el objetivo 'all-recursive'
make[2]: *** [all-recursive] Error 1
make[2]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: fallo en las instrucciones para el objetivo 'all-recursive'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio '/media/72GB/tmp/src/dosbox-x'
Makefile:332: fallo en las instrucciones para el objetivo 'all'
make: *** [all] Error 2

What i should do for the dosbox-x create the binary executable ?

maron2000 commented 2 years ago

may be deleting = {} will do. I can't test it myself but worth trying.

inukaze commented 2 years ago

may be deleting = {} will do. I can't test it myself but worth trying.

Deleting = {} Specifically where?

maron2000 commented 2 years ago

you can see from the log u posted

inukaze commented 2 years ago

Yes well

i open the terminal and do the follow :

well some days has passed i need to do the follow :

cd "/media/72GB/tmp/src/dosbox-x/"
PREFIJO="/media/Compartido/Videojuegos/Linux/Emulador/dosbox-x_git/sdl1"
mkdir -p "$PREFIJO"
git submodule update --init --recursive ; git submodule update --recursive
git pull --recurse-submodules

remote: Enumerating objects: 104, done. remote: Counting objects: 100% (104/104), done. remote: Compressing objects: 100% (35/35), done. remote: Total 104 (delta 75), reused 95 (delta 69), pack-reused 0 Recibiendo objetos: 100% (104/104), 282.60 KiB | 32.00 KiB/s, listo. Resolviendo deltas: 100% (75/75), completado con 8 objetos locales. Desde https://github.com/joncampbell123/dosbox-x 504b33a49..6763bb23c master -> origin/master Actualizando 504b33a49..6763bb23c Fast-forward CHANGELOG | 13 ++- src/dosbox.cpp | 2 +- src/gui/midi_mt32.h | 3 + src/hardware/vga_draw.cpp | 14 ++- src/hardware/vga_xga.cpp | 291 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/ints/int10_char.cpp | 4 +- src/shell/shell.cpp | 9 ++ 7 files changed, 327 insertions(+), 9 deletions(-)

./cleanup

i check the change still is there : editor ./src/dos/dos_programs.cpp

cd "/media/72GB/tmp/src/dosbox-x/src/hardware/serialport"
editor misc_util.h

i go to the line 181, std::queue<uint8_t> receiveBuffer = {} ; i remove the "{}" std::queue<uint8_t> receiveBuffer = ;

Well do it again :

cd vs/sdlnet
./build-dosbox.sh
cd ../..

cd vs/sdl
./build-dosbox.sh
cd ../..

./autogen.sh
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO" 
make all

make output :

make[3]: se entra en el directorio '/media/72GB/tmp/src/dosbox-x/src/hardware'
Making all in serialport
make[4]: se entra en el directorio '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
depbase=`echo directserial.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../include -Wno-int-to-void-pointer-cast   -Wno-address-of-packed-member   -Wno-format-zero-length   -Wno-missing-field-initializers   -Wno-strict-aliasing   -Wno-implicit-fallthrough   -Wno-deprecated-declarations   -Wconversion-null   -Wsign-promo   -Wlogical-op   -pedantic   -Wunused   -Wextra   -Wall   -I/media/72GB/tmp/src/dosbox-x/vs/sdl/linux-host/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -g -std=gnu++14  -O2 -msse  -Wall   -Wextra   -Wunused   -pedantic   -Wlogical-op   -Wsign-promo   -Wconversion-null   -Wno-deprecated-declarations   -Wno-implicit-fallthrough   -Wno-strict-aliasing   -Wno-missing-field-initializers   -Wno-format-zero-length   -Wno-address-of-packed-member   -Wno-int-to-void-pointer-cast  -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L  -MT directserial.o -MD -MP -MF $depbase.Tpo -c -o directserial.o directserial.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from directserial.cpp:27:0:
misc_util.h:176:37: error: expected primary-expression at end of input
  std::queue<uint8_t>  receiveBuffer = ;
                                     ^
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-int-to-void-pointer-cast’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-address-of-packed-member’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-implicit-fallthrough’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-implicit-fallthrough’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-address-of-packed-member’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-int-to-void-pointer-cast’
Makefile:368: fallo en las instrucciones para el objetivo 'directserial.o'
make[4]: *** [directserial.o] Error 1
make[4]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: fallo en las instrucciones para el objetivo 'all-recursive'
make[3]: *** [all-recursive] Error 1
make[3]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: fallo en las instrucciones para el objetivo 'all-recursive'
make[2]: *** [all-recursive] Error 1
make[2]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: fallo en las instrucciones para el objetivo 'all-recursive'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio '/media/72GB/tmp/src/dosbox-x'
Makefile:332: fallo en las instrucciones para el objetivo 'all'
make: *** [all] Error 2
inukaze commented 2 years ago

Ok i trying this right now :

editor "./src/hardware/serialport/directserial.cpp"

i add #include <cmath>

below of #include "pic.h" line

ok i need make some symbolic links

su
mkdir -p /usr/include/uapi/asm
mkdir -p /usr/include/uapi/linux

echo 'linux-src'
ln -s /usr/src/linux/include/linux/of.h /usr/include/linux/of.h
ln -s /usr/src/linux/include/linux/irqflags.h /usr/include/linux/irqflags.h
ln -s /usr/src/linux/include/linux/typecheck.h/usr/include/linux/typecheck.h
ln -s /usr/src/linux/include/linux/compiler.h /usr/include/linux/compiler.h
ln -s /usr/src/linux/include/linux/kobject.h /usr/include/linux/kobject.h
ln -s /usr/src/linux/include/linux/list.h /usr/include/linux/list.h
ln -s /usr/src/linux/include/linux/poison.h /usr/include/linux/poison.h
ln -s /usr/src/linux/include/linux/sysfs.h /usr/include/linux/sysfs.h
ln -s /usr/src/linux/include/linux/kernfs.h /usr/include/linux/kernfs.h
ln -s /usr/src/linux/include/linux/err.h /usr/include/linux/err.h
ln -s /usr/src/linux/include/linux/mutex.h /usr/include/linux/mutex.h
ln -s /usr/src/linux/include/linux/thread_info.h /usr/include/linux/thread_info.h
ln -s /usr/src/linux/include/linux/bug.h /usr/include/linux/bug.h
ln -s /usr/src/linux/include/linux/spinlock_types.h /usr/include/linux/spinlock_types.h
ln -s /usr/src/linux/include/linux/spinlock_types_up.h /usr/include/linux/spinlock_types_up.h
ln -s /usr/src/linux/include/linux/lockdep.h /usr/include/linux/lockdep.h
ln -s /usr/src/linux/include/linux/rwlock_types.h /usr/include/linux/rwlock_types.h
ln -s /usr/src/linux/include/linux/linkage.h /usr/include/linux/linkage.h
ln -s /usr/src/linux/include/linux/stringify.h /usr/include/linux/stringify.h
ln -s /usr/src/linux/include/linux/export.h /usr/include/linux/export.h
ln -s /usr/src/linux/include/linux/atomic.h /usr/include/linux/atomic.h
ln -s /usr/src/linux/include/linux/threads.h /usr/include/linux/threads.h
ln -s /usr/src/linux/include/linux/percpu-defs.h /usr/include/linux/percpu-defs.h
ln -s /usr/src/linux/include/linux/cpumask.h /usr/include/linux/cpumask.h
ln -s /usr/src/linux/include/linux/bitmap.h /usr/include/linux/bitmap.h
ln -s /usr/src/linux/include/linux/cache.h /usr/include/linux/cache.h
ln -s /usr/src/linux/include/uapi/linux/kernel.h /usr/include/uapi/linux/kernel.h
ln -s /usr/src/linux/include/linux/math64.h /usr/include/linux/math64.h
ln -s /usr/src/linux/include/linux/osq_lock.h /usr/include/linux/osq_lock.h
ln -s /usr/src/linux/include/linux/idr.h /usr/include/linux/idr.h
ln -s /usr/src/linux/include/linux/init.h /usr/include/linux/init.h
ln -s /usr/src/linux/include/linux/rcupdate.h /usr/include/linux/rcupdate.h
ln -s /usr/src/linux/include/linux/spinlock.h /usr/include/linux/spinlock.h
ln -s /usr/src/linux/include/linux/preempt.h /usr/include/linux/preempt.h
ln -s /usr/src/linux/include/linux/bottom_half.h /usr/include/linux/bottom_half.h
ln -s /usr/src/linux/include/linux/spinlock_up.h /usr/include/linux/spinlock_up.h
ln -s /usr/src/linux/include/linux/rwlock.h /usr/include/linux/rwlock.h
ln -s /usr/src/linux/include/linux/spinlock_api_up.h /usr/include/linux/spinlock_api_up.h
ln -s /usr/src/linux/include/linux/seqlock.h /usr/include/linux/seqlock.h
ln -s /usr/src/linux/include/linux/completion.h /usr/include/linux/completion.h
ln -s /usr/src/linux/include/linux/debugobjects.h /usr/include/linux/debugobjects.h
ln -s /usr/src/linux/include/linux/ktime.h /usr/include/linux/ktime.h
ln -s /usr/src/linux/include/linux/jiffies.h /usr/include/linux/jiffies.h
ln -s /usr/src/linux-4.4.14/include/generated/ /usr/include/generated
ln -s /usr/src/linux/include/linux/timekeeping.h /usr/include/linux/timekeeping.h
ln -s /usr/src/linux/include/linux/rbtree.h /usr/include/linux/rbtree.h
ln -s /usr/src/linux/include/linux/kobject_ns.h /usr/include/linux/kobject_ns.h
ln -s /usr/src/linux/include/linux/kref.h /usr/include/linux/kref.h
ln -s /usr/src/linux/include/linux/workqueue.h /usr/include/linux/workqueue.h
ln -s /usr/src/linux/include/linux/timer.h /usr/include/linux/timer.h
ln -s /usr/src/linux/include/linux/mod_devicetable.h /usr/include/linux/mod_devicetable.h
ln -s /usr/src/linux/include/linux/topology.h /usr/include/linux/topology.h
ln -s /usr/src/linux/include/linux/mmzone.h /usr/include/linux/mmzone.h
ln -s /usr/src/linux/include/linux/numa.h /usr/include/linux/numa.h
ln -s /usr/src/linux/include/linux/nodemask.h /usr/include/linux/nodemask.h
ln -s /usr/src/linux/include/linux/pageblock-flags.h /usr/include/linux/pageblock-flags.h
ln -s /usr/src/linux/include/linux/page-flags-layout.h /usr/include/linux/page-flags-layout.h
ln -s /usr/src/linux/include/linux/memory_hotplug.h /usr/include/linux/memory_hotplug.h
ln -s /usr/src/linux/include/linux/notifier.h /usr/include/linux/notifier.h
ln -s /usr/src/linux/include/linux/rwsem.h /usr/include/linux/rwsem.h
ln -s /usr/src/linux/include/linux/srcu.h /usr/include/linux/srcu.h
ln -s /usr/src/linux/include/linux/smp.h /usr/include/linux/smp.h
ln -s /usr/src/linux/include/linux/llist.h /usr/include/linux/llist.h
ln -s /usr/src/linux/include/linux/percpu.h /usr/include/linux/percpu.h
ln -s /usr/src/linux/include/linux/mmdebug.h /usr/include/linux/mmdebug.h
ln -s /usr/src/linux/include/linux/printk.h /usr/include/linux/printk.h
ln -s /usr/src/linux/include/linux/kern_levels.h /usr/include/linux/kern_levels.h
ln -s /usr/src/linux/include/linux/dynamic_debug.h /usr/include/linux/dynamic_debug.h
ln -s /usr/src/linux/include/linux/pfn.h /usr/include/linux/pfn.h
ln -s /usr/src/linux/include/linux/property.h /usr/include/linux/property.h
ln -s /usr/src/linux/include/linux/fwnode.h /usr/include/linux/fwnode.h

'echo asm'
ln -s /usr/src/linux/include/asm-generic/bitops.h /usr/include/linux/bitops.h
ln -s /usr/src/linux/include/asm-generic/irqflags.h /usr/include/linux/irqflags.h 

mv /usr/include/linux/irqflags.h /usr/include/linux/irqflags.h.original
ln -s /usr/src/linux/include/asm-generic/irqflags.h /usr/include/linux/irqflags.h

ln -s /usr/src/linux/include/asm-generic/barrier.h /usr/include/asm/barrier.h
ln -s /usr/src/linux/include/asm-generic/bitops/ /usr/include/asm-generic/bitops

ln -s /usr/src/linux/include/asm-generic/current.h /usr/include/asm/current.h
ln -s /usr/src/linux/include/asm-generic/bug.h /usr/include/asm/bug.h
ln -s /usr/src/linux/include/linux/thread_info.h /usr/include/asm/thread_info.h
ln -s /usr/src/linux/include/asm-generic/linkage.h /usr/include/asm/linkage.h
ln -s /usr/src/linux/include/asm-generic/atomic.h /usr/include/asm/atomic.h
ln -s /usr/src/linux/include/asm-generic/cmpxchg.h /usr/include/asm/cmpxchg.h
ln -s /usr/src/linux/include/asm-generic/cmpxchg-local.h /usr/include/asm-generic/cmpxchg-local.h
ln -s /usr/src/linux/include/asm-generic/atomic-long.h /usr/include/asm-generic/atomic-long.h
ln -s /usr/src/linux/include/asm-generic/processor.h /usr/include/asm/processor.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/processor.h /usr/include/asm/processor.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/math_emu.h /usr/include/asm/math_emu.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/segment.h /usr/include/asm/segment.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/cache.h /usr/include/asm/cache.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/uapi/asm/sigcontext.h /usr/include/uapi/asm/sigcontext.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/cpufeature.h /usr/include/asm/cpufeature.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/required-features.h /usr/include/asm/required-features.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/disabled-features.h /usr/include/asm/disabled-features.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/page.h /usr/include/asm/page.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/pgtable_types.h /usr/include/asm/pgtable_types.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/page_types.h /usr/include/asm/page_types.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/page_32_types.h /usr/include/asm/page_32_types.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/page_64_types.h /usr/include/asm/page_64_types.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/pgtable_64_types.h /usr/include/asm/pgtable_64_types.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/sparsemem.h /usr/include/asm/sparsemem.h
ln -s /usr/src/linux/include/asm-generic/pgtable-nopud.h /usr/include/asm-generic/pgtable-nopud.h
ln -s /usr/src/linux/include/asm-generic/pgtable-nopmd.h /usr/include/asm-generic/pgtable-nopmd.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/percpu.h /usr/include/asm/percpu.h
ln -s /usr/src/linux/include/asm-generic/percpu.h /usr/include/asm-generic/percpu.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/desc_defs.h /usr/include/asm/desc_defs.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/nops.h /usr/include/asm/nops.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/special_insns.h /usr/include/asm/special_insns.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/fpu/ /usr/include/asm/fpu
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/div64.h /usr/include/asm/div64.h
ln -s /usr/src/linux/include/asm-generic/div64.h /usr/include/asm-generic/div64.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/preempt.h /usr/include/asm/preempt.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/rmwcc.h /usr/include/asm/rmwcc.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/rwsem.h /usr/include/asm/rwsem.h
ln -s /usr/src/linux-4.4.14/arch/x86/include/asm/topology.h /usr/include/asm/topology.h
ln -s /usr/src/linux/include/asm-generic/topology.h /usr/include/asm-generic/topology.h

exit

make output too much long i attach dosbox-x-make-output.txt

maron2000 commented 2 years ago

You have to delete not only {} but also delete = as well, as I initially proposed to try.

grapeli commented 2 years ago

@inukaze You complicate everything too much. Provide any necessary error messages (in English). Slackware 14.2 is a system with a fairly decent compiler (gcc-5.3). First try to update the system. Package updates are available here.

First: gcc-5.5.0, gcc-g++-5.5.0, glibc-2.23, kernel-headers-4.4.301. All packages that you have installed on your system and an update is available.

I installed Slackware 14.2 out of curiosity. There is actually a problem with the RetroWaveLib library. It is not fully compatible with linux-4.4.x (applies to gpio SPI). Linux 4.4.x does not provide the gpio.h header file. https://mirrors.slackware.com/slackware/slackware64-14.2/patches/packages/linux-4.4.301/kernel-headers-4.4.301-x86-1.txz

As a workaround, I downloaded this header file from a newer 4.9 kernel (lts). The entire dosbox-x compilation under Slackware 14.2 goes to this command list.

git clone --depth 1 https://github.com/joncampbell123/dosbox-x
cd dosbox-x
curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"
sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h
sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h
sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp

./autogen.sh
cd vs/sdlnet && ./build-dosbox.sh && cd ../sdl && ./build-dosbox.sh && cd ../..
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix=/usr
LC_ALL=C make

Compilation is completed successfully. RetroWave in SPI mode will not work under a 4.4.x kernel, but under 4.9.x and above it should.

edit: Ideally, the RetroWaveLib code should not be compiled by default. I suspect that not many users use it.

inukaze commented 2 years ago

You have to delete not only {} but also delete = as well, as I initially proposed to try.

if i leave the line : std::queue<uint8_t> receiveBuffer = ;

The output if i do, you initially proposed is

depbase=`echo misc_util.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../include -Wno-int-to-void-pointer-cast   -Wno-address-of-packed-member   -Wno-format-zero-length   -Wno-missing-field-initializers   -Wno-strict-aliasing   -Wno-implicit-fallthrough   -Wno-deprecated-declarations   -Wconversion-null   -Wsign-promo   -Wlogical-op   -pedantic   -Wunused   -Wextra   -Wall   -I/media/72GB/tmp/src/dosbox-x/vs/sdl/linux-host/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -g -std=gnu++14  -O2 -msse  -Wall   -Wextra   -Wunused   -pedantic   -Wlogical-op   -Wsign-promo   -Wconversion-null   -Wno-deprecated-declarations   -Wno-implicit-fallthrough   -Wno-strict-aliasing   -Wno-missing-field-initializers   -Wno-format-zero-length   -Wno-address-of-packed-member   -Wno-int-to-void-pointer-cast  -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L  -MT misc_util.o -MD -MP -MF $depbase.Tpo -c -o misc_util.o misc_util.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from misc_util.cpp:30:0:
../../../include/enet.h: En la función ‘const char* inet_ntop(int, const void*, char*, socklen_t)’:
../../../include/enet.h:1041:80: error: la declaración de ‘const char* inet_ntop(int, const void*, char*, socklen_t)’ tiene un especificador de excepción diferente
         const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) {
                                                                                ^
In file included from ../../../include/enet.h:147:0,
                 from misc_util.cpp:30:
/usr/include/arpa/inet.h:64:20: error: de la declaración previa de ‘const char* inet_ntop(int, const void*, char*, socklen_t) throw ()’
 extern const char *inet_ntop (int __af, const void *__restrict __cp,
                    ^
In file included from misc_util.cpp:30:0:
../../../include/enet.h: En la función ‘int inet_pton(int, const char*, void*)’:
../../../include/enet.h:1208:57: error: la declaración de ‘int inet_pton(int, const char*, void*)’ tiene un especificador de excepción diferente
         int inet_pton(int af, const char *src, void *dst) {
                                                         ^
In file included from ../../../include/enet.h:147:0,
                 from misc_util.cpp:30:
/usr/include/arpa/inet.h:58:12: error: de la declaración previa de ‘int inet_pton(int, const char*, void*) throw ()’
 extern int inet_pton (int __af, const char *__restrict __cp,
            ^
En el ámbito global:
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-int-to-void-pointer-cast’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-address-of-packed-member’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-implicit-fallthrough’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-implicit-fallthrough’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-address-of-packed-member’
cc1plus: aviso: no se reconoce la opción de línea de órdenes ‘-Wno-int-to-void-pointer-cast’
Makefile:368: fallo en las instrucciones para el objetivo 'misc_util.o'
make[4]: *** [misc_util.o] Error 1
make[4]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: fallo en las instrucciones para el objetivo 'all-recursive'
make[3]: *** [all-recursive] Error 1
make[3]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: fallo en las instrucciones para el objetivo 'all-recursive'
make[2]: *** [all-recursive] Error 1
make[2]: se sale del directorio '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: fallo en las instrucciones para el objetivo 'all-recursive'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio '/media/72GB/tmp/src/dosbox-x'
Makefile:332: fallo en las instrucciones para el objetivo 'all'
make: *** [all] Error 2
maron2000 commented 2 years ago

@inukaze So my advise worked for the error you initially posted worked, but there are plenty of more errors, so it is not practical to fix those one by one. What is the reason you not follow @grapeli 's advise?

inukaze commented 2 years ago

@inukaze You complicate everything too much. Provide any necessary error messages (in English). Slackware 14.2 is a system with a fairly decent compiler (gcc-5.3). First try to update the system. Package updates are available here.

First: gcc-5.5.0, gcc-g++-5.5.0, glibc-2.23, kernel-headers-4.4.301. All packages that you have installed on your system and an update is available.

I installed Slackware 14.2 out of curiosity. There is actually a problem with the RetroWaveLib library. It is not fully compatible with linux-4.4.x (applies to gpio SPI). Linux 4.4.x does not provide the gpio.h header file. https://mirrors.slackware.com/slackware/slackware64-14.2/patches/packages/linux-4.4.301/kernel-headers-4.4.301-x86-1.txz

As a workaround, I downloaded this header file from a newer 4.9 kernel (lts). The entire dosbox-x compilation under Slackware 14.2 goes to this command list.

git clone --depth 1 https://github.com/joncampbell123/dosbox-x
cd dosbox-x
curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"
sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h
sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h
sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp

./autogen.sh
cd vs/sdlnet && ./build-dosbox.sh && cd ../sdl && ./build-dosbox.sh && cd ../..
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix=/usr
LC_ALL=C make

Compilation is completed successfully. RetroWave in SPI mode will not work under a 4.4.x kernel, but under 4.9.x and above it should.

edit: Ideally, the RetroWaveLib code should not be compiled by default. I suspect that not many users use it.

Thank you very much for answer, well i am going to change the mirror for make updates for this by this way.

Well the packages are update (except kernel, i really don't upgrade kernel because ever broke my 3D Acceleration, DRI, Graphical System)

The thing i do 1 - Change Mirrors 2 - Update System Packages 3 - Delete folder and all sub-content " /usr/src/linux-4.4.14 " 4 - Install package kernel-sources-4.4.14.txz 5 - i use the follow commands on a terminal :

PREFIJO="/media/Compartido/Videojuegos/Linux/Emulador/dosbox-x_git/sdl1"
mkdir -p "$PREFIJO"

cd "/media/72GB/tmp/src/dosbox-x/"
./cleanup

git submodule update --init --recursive 
git submodule update --recursive

git pull --recurse-submodules
remote: Enumerating objects: 423, done.
remote: Counting objects: 100% (370/370), done.
remote: Compressing objects: 100% (161/161), done.
remote: Total 273 (delta 204), reused 173 (delta 112), pack-reused 0
Recibiendo objetos: 100% (273/273), 47.05 KiB | 244.00 KiB/s, listo.
Resolviendo deltas: 100% (204/204), completado con 34 objetos locales.
Desde https://github.com/joncampbell123/dosbox-x
   6763bb23c..38e57ad3c  master            -> origin/master
 * [nuevo tag]           dosbox-x-v0.83.23 -> dosbox-x-v0.83.23
Actualizando 6763bb23c..38e57ad3c
Fast-forward
 CHANGELOG                                               |  30 +
 contrib/linux/com.dosbox_x.DOSBox-X-sdl2.yaml           |  87 ---
 contrib/linux/com.dosbox_x.DOSBox-X.metainfo.xml.in     |   2 +-
 contrib/linux/com.dosbox_x.DOSBox-X.yaml                |  57 +-
 contrib/linux/dosbox-x.spec.in                          |   5 +
 contrib/translations/zh/zh_TW.lng                       |  22 +-
 contrib/windows/installer/dosbox-x.reference.setup.conf |   9 +-
 dosbox-x.reference.conf                                 |   2 +-
 dosbox-x.reference.full.conf                            |   9 +-
 include/build_timestamp.h                               |   4 +-
 make-flatpak-sdl2.sh                                    |  27 -
 make-flatpak.sh                                         |   2 +-
 src/dos/dos.cpp                                         |   7 +-
 src/dosbox.cpp                                          |   7 +-
 src/hardware/vga.cpp                                    |  39 +-
 src/hardware/vga_draw.cpp                               |  67 +-
 src/hardware/vga_xga.cpp                                | 771 ++++++++++++++++++++++-
 src/ints/int10.h                                        |   1 +
 src/ints/int10_modes.cpp                                |   9 +-
 19 files changed, 962 insertions(+), 195 deletions(-)
 delete mode 100644 contrib/linux/com.dosbox_x.DOSBox-X-sdl2.yaml
 delete mode 100755 make-flatpak-sdl2.sh

#echo 'Using grapeli commands :'
curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"
sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h
sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h
sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp

./autogen.sh
cd vs/sdlnet && ./build-dosbox.sh && cd ../sdl && ./build-dosbox.sh && cd ../..
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO"

latest output (Copying and pasting the grapeli command(s):

[sdlnet]$ ./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO"
configure: WARNING: unrecognized options: --enable-core-inline, --enable-debug, --disable-avcodec, --enable-sdl

well let me try with my & grapeli commands merged :

make distclean
cd ../..
./cleanup

cd vs/sdlnet
./build-dosbox.sh

well sdl is broken, the output right now is :

*** Could not run SDL test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occurred. This usually means SDL was incorrectly installed
*** or that you have moved SDL since it was installed. In the latter case, you
*** may want to edit the sdl-config script: /media/72GB/tmp/src/dosbox-x/vs/sdlnet/../sdl/linux-host/bin/sdl-config
configure: error: SDL 1.x or SDL 2.x is required to compile this program

Ok i leave the rest of command for after i fix that

cd ../..
cd vs/sdl
./build-dosbox.sh
cd ../..

./autogen.sh
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO" 
LC_ALL=C make all
inukaze commented 2 years ago

@inukaze So my advise worked for the error you initially posted worked, but there are plenty of more errors, so it is not practical to fix those one by one. What is the reason you not follow @grapeli 's advise?

im changing mirror(s) for make update, for try by that way, the unique thing i never update is the kernel, because supeior versions ever broke the 3D Acceleration with my gpu. because of kernel 4.4.127 until 4.4.30X (i dont remember the latest i try) ever is the same, the nvidia drivers don't make the module for kernel and just for that i just prefer stay on 4.4.14

grapeli commented 2 years ago

im changing mirror(s) for make update, for try by that way, the unique thing i never update is the kernel, because supeior versions ever broke the 3D Acceleration with my gpu. because of kernel 4.4.127 until 4.4.30X (i dont remember the latest i try) ever is the same, the nvidia drivers don't make the module for kernel and just for that i just prefer stay on 4.4.14

The problem is that you have absolutely no experience in compiling software under linux. Well then don't update. Your business. You can stay on the 2016 kernel with two hundred critical bugs. Whether you will be using 4.4.14 or 4.4.302, none of them will provide the gpio.h header file anyway. Because this API was only added in kernel 4.6. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3c702e9987e261042a07e43460a8148be254412e

You can easily upgrade the rest of your system and compile dosbox-x without any problem. What's the problem. I gave the exact recipe. How to properly compile dosbox-x under slackware 14.2. If you need to, I can prepare a build. Even with sdl2-2.0.22, ffmpeg, fluidsynth, slirp support. No problem.

inukaze commented 2 years ago

im changing mirror(s) for make update, for try by that way, the unique thing i never update is the kernel, because supeior versions ever broke the 3D Acceleration with my gpu. because of kernel 4.4.127 until 4.4.30X (i dont remember the latest i try) ever is the same, the nvidia drivers don't make the module for kernel and just for that i just prefer stay on 4.4.14

The problem is that you have absolutely no experience in compiling software under linux. Well then don't update. Your business. You can stay on the 2016 kernel with two hundred critical bugs. Whether you will be using 4.4.14 or 4.4.302, none of them will provide the gpio.h header file anyway. Because this API was only added in kernel 4.6. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3c702e9987e261042a07e43460a8148be254412e

You can easily upgrade the rest of your system and compile dosbox-x without any problem. What's the problem. I gave the exact recipe. How to properly compile dosbox-x under slackware 14.2. If you need to, I can prepare a build. Even with sdl2-2.0.22, ffmpeg, fluidsynth, slirp support. No problem.

The recipe is not exact because the arguments for dosbox-x stay on sdlnet, but right now i need to fix SDL. because i broken it with the process i describe before.

and well don't worry for make a build, i prefer make it with sdl1 because have better support for 3DFX, ( The LibRetroWave is for FPGA modules ?, well reading i don't need it )

Well i need recompile things, i come back tomorrow or monday, when i finish the fixes.

inukaze commented 2 years ago

Trying again. (i think fix things for compilation take me much more time) Here we go, once more time XD

cd /media/72GB/tmp/src
PREFIJO="/media/Compartido/Videojuegos/Linux/Emulador/dosbox-x_git/sdl1"
mkdir -p "$PREFIJO"
rm -rf dosbox-x
git clone --recurse-submodules https://github.com/joncampbell123/dosbox-x
cd dosbox-x/
git submodule update --init --recursive 
git submodule update --recursive
git pull --recurse-submodules

Already Update

./cleanup

curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"

sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h

sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h

sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp

cd vs/sdlnet
./build-dosbox.sh
cd ../..
cd vs/sdl
./build-dosbox.sh
cd ../..
./autogen.sh
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO" 
LC_ALL=C make all

LC_ALL make all final output :

In file included from directserial.cpp:27:0:
misc_util.h:175:40: error: converting to 'std::queue<unsigned char>' from initializer list would use explicit constructor 'std::queue<_Tp, _Sequence>::queue(_Sequence&&) [with _Tp = unsigned char; _Sequence = std::deque<unsigned char, std::allocator<unsigned char> >]'
  std::queue<uint8_t>  receiveBuffer = {};
                                        ^
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
Makefile:368: recipe for target 'directserial.o' failed
make[4]: *** [directserial.o] Error 1
make[4]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/media/72GB/tmp/src/dosbox-x'
Makefile:332: recipe for target 'all' failed
make: *** [all] Error 2

ok i try add line too this file : editor "./src/hardware/serialport/directserial.cpp"

below of #include "pic.h" line, i add #include <cmath>

make output :

In file included from directserial.cpp:27:0:
misc_util.h:175:40: error: converting to 'std::queue<unsigned char>' from initializer list would use explicit constructor 'std::queue<_Tp, _Sequence>::queue(_Sequence&&) [with _Tp = unsigned char; _Sequence = std::deque<unsigned char, std::allocator<unsigned char> >]'
  std::queue<uint8_t>  receiveBuffer = {};
                                        ^
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
Makefile:368: recipe for target 'directserial.o' failed
make[4]: *** [directserial.o] Error 1
make[4]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/media/72GB/tmp/src/dosbox-x'
Makefile:332: recipe for target 'all' failed
make: *** [all] Error 2

the same thing, i revert that change and well i go try the maron2000 initial suggestion editor ./src/hardware/serialport/misc_util.h

and leave the line like std::queue<uint8_t> receiveBuffer ;

trying again : LC_ALL=C make all

make output

In file included from misc_util.cpp:30:0:
../../../include/enet.h: In function 'const char* inet_ntop(int, const void*, char*, socklen_t)':
../../../include/enet.h:1041:80: error: declaration of 'const char* inet_ntop(int, const void*, char*, socklen_t)' has a different exception specifier
         const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) {
                                                                                ^
In file included from ../../../include/enet.h:147:0,
                 from misc_util.cpp:30:
/usr/include/arpa/inet.h:64:20: error: from previous declaration 'const char* inet_ntop(int, const void*, char*, socklen_t) throw ()'
 extern const char *inet_ntop (int __af, const void *__restrict __cp,
                    ^
In file included from misc_util.cpp:30:0:
../../../include/enet.h: In function 'int inet_pton(int, const char*, void*)':
../../../include/enet.h:1208:57: error: declaration of 'int inet_pton(int, const char*, void*)' has a different exception specifier
         int inet_pton(int af, const char *src, void *dst) {
                                                         ^
In file included from ../../../include/enet.h:147:0,
                 from misc_util.cpp:30:
/usr/include/arpa/inet.h:58:12: error: from previous declaration 'int inet_pton(int, const char*, void*) throw ()'
 extern int inet_pton (int __af, const char *__restrict __cp,
            ^
At global scope:
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
Makefile:368: recipe for target 'misc_util.o' failed
make[4]: *** [misc_util.o] Error 1
make[4]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/media/72GB/tmp/src/dosbox-x'
Makefile:332: recipe for target 'all' failed
make: *** [all] Error 2
grapeli commented 2 years ago

I will repeat it a third time.

Update the system first. This mainly applies to the (toolchain) gcc, gcc-g++ (will be version 5.5.0) and glibc.

inukaze commented 2 years ago

I will repeat it a third time.

Update the system first. This mainly applies to the (toolchain) gcc, gcc-g++ (will be version 5.5.0) and glibc.

i already try, let me check again and try update again before i try with

slpkg -c slack --upgrade but something does not work i happen XD because on list show me :

These packages need upgrading:

+============================================================================== | Package New Version Arch Build Repos Size +============================================================================== Upgrading: cyrus-sasl 2.1.28 x86_64 1 Slack 948 K dbus-1.10.8 1.10.8 x86_64 2 Slack 476 K expat-2.4.1 2.4.3 x86_64 5 Slack 124 K flac-1.3.1 1.3.4 x86_64 1 Slack 376 K gcc-5.5.0_multilib 5.5.0 x86_64 1 Slack 17804 K gcc-g++-5.5.0_multilib 5.5.0 x86_64 1 Slack 7688 K gcc-gfortran-5.5.0_multilib 5.5.0 x86_64 1 Slack 6364 K gcc-gnat-5.5.0_multilib 5.5.0 x86_64 1 Slack 13792 K gcc-go-5.5.0_multilib 5.5.0 x86_64 1 Slack 13296 K gcc-java-5.5.0_multilib 5.5.0 x86_64 1 Slack 26628 K gcc-objc-5.5.0_multilib 5.5.0 x86_64 1 Slack 5624 K gegl-0.2.0 0.2.0 x86_64 4 Slack 460 K glibc-2.23_multilib 2.23 x86_64 4 Slack 5428 K glibc-i18n-2.23_multilib 2.23 x86_64 4 Slack 7356 K glibc-profile-2.23_multilib 2.23 x86_64 4 Slack 1376 K glibc-solibs-2.23_multilib 2.23 x86_64 4 Slack 2620 K gnutls-3.4.13 3.6.16 x86_64 1 Slack 2696 K intltool 0.51.0 x86_64 3 Slack 48 K libXrender-0.9.9 0.9.10 x86_64 1 Slack 36 K libtool 2.4.6 x86_64 5 Slack 428 K libxml2-2.9.12 2.9.13 x86_64 1 Slack 1188 K libxslt 1.1.35 x86_64 1 Slack 388 K nasm-2.14.02 2.13.01 x86_64 1 Slack 376 K openexr-2.2.0 2.2.0 x86_64 2 Slack 2932 K p11-kit-0.23.2 0.23.22 x86_64 1 Slack 436 K pkg-config 0.29.2 x86_64 1 Slack 56 K polkit-0.113 0.113 x86_64 4 Slack 372 K procps-ng 3.3.15 x86_64 1 Slack 504 K sdl-1.2.15 1.2.15 x86_64 5 Slack 628 K wpa_supplicant-2.9 2.9 x86_64 2 Slack 1076 K

Installing summary

Total 24 packages will be upgraded and 6 will be installed. Need to get 118.68 Mb of archives. After this process, 638.78 Mb of additional disk space will be used.

Would you like to continue [y/N]? y

i prefer use slpkg in the mayority of case becase can solve dependencies, meanwhile the official package manager slackpkg can not do it.

su
slackpkg upgrade gcc gcc-g++

well i must wait the upgrade, when that happen i just try again LC_ALL=C make all on dosbox-x src folder

grapeli commented 2 years ago

After all, I mentioned glibc as well. If you have these packages installed glibc-i18n, glibc-profile, glibc-solibs so do they.

Before you start recompiling, of course, undo all changes you have made to the misc_util.h and directserial.cpp file.

inukaze commented 2 years ago

After all, I mentioned glibc as well. If you have these packages installed glibc-i18n, glibc-profile, glibc-solibs so do they.

Before you start recompiling, of course, undo all changes you have made to the misc_util.h and directserial.cpp file.

right now i am thinking ask about that is i must revert that change or not XD. well thanks

inukaze commented 2 years ago

Ok i try make and fail again, i try from the begining again, right now i am stuck on downloading from github max speed right now of download is «3,00 KiB/s».

This just is because the « ./cleanup » script no clean at all, because i try compile again after of this, and gave me the same errors. because of that i am downloading again, but the Venezuelan internet connetion speed is really slowpoke.

Well when this finish i try again the part :

cd /media/72GB/tmp/src
PREFIJO="/media/Compartido/Videojuegos/Linux/Emulador/dosbox-x_git/sdl1"
mkdir -p "$PREFIJO"
rm -rf dosbox-x
git clone --recurse-submodules https://github.com/joncampbell123/dosbox-x
cd dosbox-x/
git submodule update --init --recursive 
git submodule update --recursive
git pull --recurse-submodules

Already Update

./cleanup

curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"

sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h

sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h

sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp

cd vs/sdlnet
./build-dosbox.sh
cd ../.. 
cd vs/sdl
./build-dosbox.sh
cd ../..
./autogen.sh
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIJO" 
LC_ALL=C make all
inukaze commented 2 years ago

LC_ALL=C make all output :

make[3]: Entering directory '/media/72GB/tmp/src/dosbox-x/src/hardware'
Making all in serialport
make[4]: Entering directory '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
depbase=`echo directserial.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I../../..  -I../../../include -Wno-int-to-void-pointer-cast   -Wno-address-of-packed-member   -Wno-format-zero-length   -Wno-missing-field-initializers   -Wno-strict-aliasing   -Wno-implicit-fallthrough   -Wno-deprecated-declarations   -Wconversion-null   -Wsign-promo   -Wlogical-op   -pedantic   -Wunused   -Wextra   -Wall   -I/media/72GB/tmp/src/dosbox-x/vs/sdl/linux-host/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -g -std=gnu++14  -O2 -msse  -Wall   -Wextra   -Wunused   -pedantic   -Wlogical-op   -Wsign-promo   -Wconversion-null   -Wno-deprecated-declarations   -Wno-implicit-fallthrough   -Wno-strict-aliasing   -Wno-missing-field-initializers   -Wno-format-zero-length   -Wno-address-of-packed-member   -Wno-int-to-void-pointer-cast  -I/media/72GB/tmp/src/dosbox-x -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include -I/media/72GB/tmp/src/dosbox-x/vs/sdlnet/linux-host/include/SDL -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L  -MT directserial.o -MD -MP -MF $depbase.Tpo -c -o directserial.o directserial.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from directserial.cpp:27:0:
misc_util.h:175:40: error: converting to 'std::queue<unsigned char>' from initializer list would use explicit constructor 'std::queue<_Tp, _Sequence>::queue(_Sequence&&) [with _Tp = unsigned char; _Sequence = std::deque<unsigned char, std::allocator<unsigned char> >]'
  std::queue<uint8_t>  receiveBuffer = {};
                                        ^
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthrough'
cc1plus: warning: unrecognized command line option '-Wno-address-of-packed-member'
cc1plus: warning: unrecognized command line option '-Wno-int-to-void-pointer-cast'
Makefile:368: recipe for target 'directserial.o' failed
make[4]: *** [directserial.o] Error 1
make[4]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware/serialport'
Makefile:748: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src/hardware'
Makefile:521: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/media/72GB/tmp/src/dosbox-x/src'
Makefile:399: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/media/72GB/tmp/src/dosbox-x'
Makefile:332: recipe for target 'all' failed
make: *** [all] Error 2
grapeli commented 2 years ago

I checked for three days but without sdlnet. For this, the compilation was successful.

A small fix is needed for this g++ 5.5.0 to compile this code correctly. https://stackoverflow.com/questions/26947704/implicit-conversion-failure-from-initializer-list This pull request is responsible for these changes. support enet UDP for serial modems

First build without sdlnet support.

grapeli commented 2 years ago

You need to add these two more commands to these preliminary steps.

sed -i 's|std::queue<uint8_t>  receiveBuffer = {};|std::queue<uint8_t>  receiveBuffer;|' src/hardware/serialport/misc_util.h
sed -i 's|#if !defined(__MINGW64_VERSION_MAJOR)|#if defined(__MINGW64_VERSION_MAJOR)|' include/enet.h

The first fix is the one suggested by @maron2000.

The second one is not sure if it is completely correct, but it ensures correct compilation. There is some mismatch in the enet.h header file included with dosbox-x compared to: https://github.com/zpl-c/enet/blob/master/include/enet.h#L5142 https://github.com/dosbox-staging/dosbox-staging/blob/main/src/libs/enet/include/enet.h#L5145

Your system is heavily outdated. Compared to the development of dosbox-x, it is roughly there on the timeline. https://github.com/joncampbell123/dosbox-x/releases?page=12

Download a dosbox-x from 2016. See how it differs from version 0.83.23.

maron2000 commented 2 years ago

So for my curiosity, I installed a Slackware 14.2 x64 on VMware. I added std=c++14 option which seems to successfully build sdlnet. The following are the steps.

Step1 Clean install slackware Step2 Update all packages

sudo slackpkg update
sudo slackpkg install-new
sudo slackpkg upgrade-all
sudo slackpkg clean-system

Step 3. fix line 150 of dosbox-x/vs/sdlnet/configure.ac CXXFLAGS="$CXXFLAGS $CFLAGS -std=c++14" Step 4. fix line 160 of dosbox-x/configure.ac (may not be required) CXXFLAGS="$CXXFLAGS -std=c++14"; #<-- from gnu++14 to c++14

Step 5. Follow @grapeli 's steps.

git clone --depth 1 https://github.com/joncampbell123/dosbox-x
cd dosbox-x
curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"
sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h
sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h
sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp
sed -i 's|std::queue<uint8_t>  receiveBuffer = {};|std::queue<uint8_t>  receiveBuffer;|' src/hardware/serialport/misc_util.h
sed -i 's|#if !defined(__MINGW64_VERSION_MAJOR)|#if defined(__MINGW64_VERSION_MAJOR)|' include/enet.h

./autogen.sh
cd vs/sdlnet && ./build-dosbox.sh && cd ../sdl && ./build-dosbox.sh && cd ../..
./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix=/usr
LC_ALL=C make

slackware

inukaze commented 2 years ago

Thank you very much to yours : maron200, grapeli

Finally i can build it, but i just skip this step

Step 3. fix line 150 of dosbox-x/vs/sdlnet/configure.ac
CXXFLAGS="$CXXFLAGS $CFLAGS -std=c++14"
Step 4. fix line 160 of dosbox-x/configure.ac (may not be required)
CXXFLAGS="$CXXFLAGS -std=c++14"; #<-- from gnu++14 to c++14

i use this commands on the same latest src dosbox-x folder i share the latest time

sed -i 's|std::queue<uint8_t>  receiveBuffer = {};|std::queue<uint8_t>  receiveBuffer;|' src/hardware/serialport/misc_util.h
sed -i 's|#if !defined(__MINGW64_VERSION_MAJOR)|#if defined(__MINGW64_VERSION_MAJOR)|' include/enet.h

LC_ALL=C make
make install

and finally the binary executable was created, here the screenshoot : dosbox-x_v08324

dosbox-x_v08324_1

inukaze commented 2 years ago

Finally Resuming all, use The following are the steps.

Step 1 : Install, Modify "mirrors" file (slackpkg or slpkg), and finally update the system

su
slackpkg update
slackpkg install-new
slackpkg upgrade-all
slackpkg clean-system
exit

Step 2. Download the source code and enter in the DOSBox-X Source Code Folder

git clone --recurse-submodules https://github.com/joncampbell123/dosbox-x
cd dosbox-x/
git submodule update --init --recursive 
git submodule update --recursive
git pull --recurse-submodules

Step 3. Apply the Fixes :

curl -o src/hardware/RetroWaveLib/Platform/gpio.h -JL "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/plain/include/uapi/linux/gpio.h?h=linux-4.9.y"

sed -i 's|_UAPI_GPIO_H_|_GPIO_H_|g' src/hardware/RetroWaveLib/Platform/gpio.h

sed -i 's|#include <linux/gpio.h>|#include "gpio.h"|' src/hardware/RetroWaveLib/Platform/Linux_SPI.h

sed -i '/math.h>/ a #include <cmath>' src/dos/dos_programs.cpp

sed -i 's|std::queue<uint8_t>  receiveBuffer = {};|std::queue<uint8_t>  receiveBuffer;|' src/hardware/serialport/misc_util.h

sed -i 's|#if !defined(__MINGW64_VERSION_MAJOR)|#if defined(__MINGW64_VERSION_MAJOR)|' include/enet.h

Step 4. Set the prefix path, Compile internal version from dosbox-x src, sdlnet, and sdl1, and finally compile the dosbox-x source code

cd vs/sdlnet ; ./build-dosbox.sh ; cd ../.. 
cd vs/sdl ; ./build-dosbox.sh ; cd ../..

./autogen.sh

PREFIX="/usr"

./configure --enable-core-inline --enable-debug=heavy --disable-avcodec --enable-sdl --prefix="$PREFIX" 

LC_ALL=C make all

su -c "make install" root
  1. Finally (if no errors occurs) test the binary executable :
cd "$PREFIX/bin"
./dosbox-x

and you should see something like this window (Set the output to OpenGL is the internal scale of text is not fit to window)

dosbox-x_v08324