Stas Sergeev wrote:
> 28.01.2013 13:38, Frantisek Hanzlik пишет:
>> Stas Sergeev wrote:
>>> 28.01.2013 11:02, Frantisek Hanzlik пишет:
>>>> Hello DOSEMU hackers,
>>>>
>>>> Just trying build git version DOSEMU (dosemu-1.4.0.8-111.g5205669 ?)
>>>> I ends with linker error:
>>>>
>>>> ...onous-unwind-tables -o emu.o emu.c
>>>> In file included from /usr/include/stdio.h:28:0,
>>>> from emu.c:59:
>>>> /usr/include/features.h:314:4: warning: #warning _FORTIFY_SOURCE requires
>>>> compiling with optimization (-O) [-Wcpp]
>>>> gcc -std=gnu99 -Wl,-warn-common -Wl,-z,relro -rdynamic -o
>>>> ../1.4.0.8/bin/dosemu.bin emu.o \
>>>> -Wl,--whole-archive lib/libenv_video.a lib/libbase.a
>>>> lib/libbase_async.a lib/libarch_linux_async.a lib/libarch_linux_mapping.a
>>>> lib/libbase_misc.a lib/libbase_misc_libpcl.a lib/libbase_dev_misc.a
>>>> lib/libemu-i386.a lib/libenv.a lib/libbase_speaker.a lib/libbase_dev_pic.a
>>>> lib/libdosext_dpmi.a lib/libdosext_mfs.a lib/libdosext_misc.a
>>>> lib/libbase_init.a lib/libbase_serial.a lib/libbase_mouse.a
>>>> lib/libbase_dev_dma.a lib/libarch_linux_debugger.a lib/libdosext_net_net.a
>>>> lib/libdosext_sound.a lib/libarch_linux_dosext_sound.a
>>>> lib/libbase_dev_sb16.a lib/libbase_sound.a lib/libdosext_drivers.a
>>>> lib/libbase_bios.a lib/libplugin_fluidsynth.a lib/libplugin_X.a
>>>> lib/libplugin_gpm.a lib/libplugin_extra_charsets.a lib/libplugin_alsa.a
>>>> lib/libplugin_term.a lib/libplugin_midimisc.a lib/libplugin_sdl.a
>>>> lib/libplugin_kbd_unicode.a lib/libplugin_commands.a
>>>> lib/libplugin_sndfile.a lib/libplugin_translate.a
>>>> lib/libplugin_translate_charsets.a -Wl,--no-whole-archive -lvga -lrt -ldl
>>>> -lm
>>>> lib/libdosext_sound.a(sound.o): In function `sb_io_write':
>>>> /mnt/ARCHIV/dist/RH/MyRPMs/BUILD/dosemu-1.4.0.8/src/dosext/sound/sound.c:768:
>>>> undefined reference to `sb_mixer_register_write'
>>>> collect2: error: ld returned 1 exit status
>>>> make[2]: *** [../1.4.0.8/bin/dosemu.bin] Error 1
>>>> make[2]: Leaving directory
>>>> `/mnt/ARCHIV/dist/RH/MyRPMs/BUILD/dosemu-1.4.0.8/src'
>>>> make[1]: *** [dosemu] Error 2
>>>>
>>>>
>>>> Which may be bad?
>>> Should be fixed in git.
>>> In C99 mode, the "inline" functions do not produce an externally
>>> visible symbol. But, in your case, this function had a _forward_ inline
>>> declaration, and was not available at a call site, so, for some reason,
>>> the direct call was generated.
>>> This may be a gcc bug, or may not. gnu99 mode was in the game,
>>> not C99, which gives the additional obscuring.
>>> I simply removed inline.
>> Stas, thanks, now it work fine (dosemu-1.4.0.8-112.g760339c).
>>
>> Maybe latest Barts patch "No longer call vga_emu_init() and vbe_init()
> More likely that you haven't done "make clean"
> I merged master into devel now, so that the sound problem is
> at least fixed in both.
I think no, my script does all work from download to build and package
dosemu RPM.
Now when I apply these Barts patches (vgaemu.c video.c console.c
terminal.c), then I got error:
gcc -std=gnu99 -Wl,-warn-common -Wl,-z,relro -rdynamic -o
../1.4.0.8/bin/dosemu.bin emu.o \
-Wl,--whole-archive lib/libenv_video.a lib/libbase.a lib/libbase_async.a
lib/libarch_linux_async.a lib/libarch_linux_mapping.a lib/libbase_misc.a
lib/libbase_misc_libpcl.a lib/libbase_dev_misc.a lib/libemu-i386.a lib/libenv.a
lib/libbase_speaker.a lib/libbase_dev_pic.a
lib/libdosext_dpmi.a lib/libdosext_mfs.a lib/libdosext_misc.a
lib/libbase_init.a lib/libbase_serial.a lib/libbase_mouse.a
lib/libbase_dev_dma.a lib/libarch_linux_debugger.a lib/libdosext_net_net.a
lib/libdosext_sound.a lib/libarch_linux_dosext_sound.a
lib/libbase_dev_sb16.a lib/libbase_sound.a lib/libdosext_drivers.a
lib/libbase_bios.a lib/libplugin_fluidsynth.a lib/libplugin_X.a
lib/libplugin_gpm.a lib/libplugin_extra_charsets.a lib/libplugin_alsa.a
lib/libplugin_term.a lib/libplugin_midimisc.a lib/libplugin_sdl.a
lib/libplugin_kbd_unicode.a lib/libplugin_commands.a lib/libplugin_sndfile.a
lib/libplugin_translate.a lib/libplugin_translate_charsets.a
-Wl,--no-whole-archive -lvga -lrt -ldl -lm
lib/libenv_video.a(vgaemu.o): In function `vga_emu_pre_init':
/mnt/ARCHIV/dist/RH/MyRPMs/BUILD/dosemu-1.4.0.8/src/env/video/vgaemu.c:1644:
undefined reference to `vbe_pre_init'
collect2: error: ld returned 1 exit status
make[2]: *** [../1.4.0.8/bin/dosemu.bin] Error 1
make[2]: Leaving directory `/mnt/ARCHIV/dist/RH/MyRPMs/BUILD/dosemu-1.4.0.8/src'
make[1]: *** [dosemu] Error 2
vgaemu diff is:
--- vgaemu.c.old 2013-01-28 12:14:56.249783182 +0100
+++ vgaemu.c 2013-01-28 07:35:31.000000000 +0100
@@ -1481,2 +1481,23 @@
{
+ vgaemu_display_type vedt;
+
+ vedt.src_modes = src_modes;
+ vedt.bits = csd->bits;
+ vedt.bytes = csd->bytes;
+ vedt.r_mask = csd->r_mask;
+ vedt.g_mask = csd->g_mask;
+ vedt.b_mask = csd->b_mask;
+ vedt.r_shift = csd->r_shift;
+ vedt.g_shift = csd->g_shift;
+ vedt.b_shift = csd->b_shift;
+ vedt.r_bits = csd->r_bits;
+ vedt.g_bits = csd->g_bits;
+ vedt.b_bits = csd->b_bits;
+ vbe_init(&vedt);
+
+ return 0;
+}
+
+int vga_emu_pre_init(void)
+{
int i;
@@ -1501,3 +1522,2 @@
MEMCPY_2DOS(GFX_CHARS, vga_rom_08, 128 * 8);
- vbe_init(NULL);
for(i = 0; i < vgaemu_bios.pages; i++) vga_emu_protect_page(0xc0 + i,
RO);
@@ -1576,22 +1596,2 @@
- if(csd != NULL) {
- vgaemu_display_type vedt;
-
- vedt.src_modes = src_modes;
- vedt.bits = csd->bits;
- vedt.bytes = csd->bytes;
- vedt.r_mask = csd->r_mask;
- vedt.g_mask = csd->g_mask;
- vedt.b_mask = csd->b_mask;
- vedt.r_shift = csd->r_shift;
- vedt.g_shift = csd->g_shift;
- vedt.b_shift = csd->b_shift;
- vedt.r_bits = csd->r_bits;
- vedt.g_bits = csd->g_bits;
- vedt.b_bits = csd->b_bits;
- vbe_init(&vedt);
- } else {
- vbe_init(NULL);
- }
-
/*
@@ -1643,2 +1643,4 @@
+ vbe_pre_init();
+
vga_msg(
======
Second thing, when I start dosemu, then I see error msg:
ALSA lib rawmidi_hw.c:233:(snd_rawmidi_hw_open) open /dev/snd/midiC0D0 failed:
No such file or directory
fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.
Initially I have no '/dev/snd/midiCnDn', and after i load snd_seq_virmidi (?),
then I got /dev/snd/{midiC2D0,midiC2D1,midiC2D2,midiC2D3}, not midiC0D0.
I not need midi, thus this isn't problem for me, but maybe peoples use
dosemu with it.
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Dosemu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dosemu-devel