GDB serial and backtrace support.
authorLubomir Kundrak <lkundrak@redhat.com>
Sun, 26 Feb 2012 18:17:37 +0000 (19:17 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 26 Feb 2012 18:17:37 +0000 (19:17 +0100)
* grub-core/kern/i386/realmode.S (real_to_prot): Reload IDT.
(prot_to_real): Likewise.
* grub-core/kern/i386/int.S (grub_bios_interrupt): Remove IDT reload.
* grub-core/Makefile.core.def (backtrace): New module.
(gdb): Likewise.
* grub-core/gdb/cstub.c: New file.
* grub-core/gdb/gdb.c: Likewise.
* grub-core/gdb/i386/idt.c: Likewise.
* grub-core/gdb/i386/machdep.S: Likewise.
* grub-core/gdb/i386/signal.c: Likewise.
* grub-core/lib/i386/backtrace.c: Likewise.
* include/grub/backtrace.h: Likewise.
* include/grub/gdb.h: Likewise.
* include/grub/i386/gdb.h: Likewise.

Also-By: Vladimir Serbinenko <phcoder@gmail.com>
1  2 
ChangeLog
grub-core/Makefile.core.def

diff --cc ChangeLog
+++ b/ChangeLog
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
 -2012-02-18 Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Lubomir Kundrak  <lkundrak@redhat.com>
++
++      GDB serial and backtrace support.
++
++      * grub-core/kern/i386/realmode.S (real_to_prot): Reload IDT.
++      (prot_to_real): Likewise.
++      * grub-core/kern/i386/int.S (grub_bios_interrupt): Remove IDT reload.
++      * grub-core/Makefile.core.def (backtrace): New module.
++      (gdb): Likewise.
++      * grub-core/gdb/cstub.c: New file.
++      * grub-core/gdb/gdb.c: Likewise.
++      * grub-core/gdb/i386/idt.c: Likewise.
++      * grub-core/gdb/i386/machdep.S: Likewise.
++      * grub-core/gdb/i386/signal.c: Likewise.
++      * grub-core/lib/i386/backtrace.c: Likewise.
++      * include/grub/backtrace.h: Likewise.
++      * include/grub/gdb.h: Likewise.
++      * include/grub/i386/gdb.h: Likewise.
++
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/gnulib/argp-fmtstream.c (__argp_get_display_len):
 +      New function.
 +      (add_length): Likewise.
 +      (__argp_fmtstream_update): Handle strings with non-ASCII chars.
 +      * grub-core/gnulib/argp-fmtstream.h (__argp_get_display_len): New
 +      proto.
 +      * grub-core/gnulib/argp-help.c (argp_args_usage): Use
 +      __argp_get_display_len.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      $"..." support in scripts.
 +
 +      * grub-core/script/execute.c (grub_script_arglist_to_argv): Handle
 +      GRUB_SCRIPT_ARG_TYPE_GETTEXT.
 +      * grub-core/script/yylex.l: Likewise.
 +      * include/grub/script_sh.h (GRUB_SCRIPT_ARG_TYPE_GETTEXT): New enum
 +      value.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * gentpl.py: Remove obsolete pkglib_DATA handling.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Don't transform PACKAGE_TARNAME following a discussion on autoconf
 +      mailing list.
 +
 +      * util/grub-install.in: Don't transform PACKAGE_TARNAME.
 +      * util/grub-kbdcomp.in: Likewise.
 +      * util/grub-mkconfig.in: Likewise.
 +      * util/grub-mkconfig_lib.in: Likewise.
 +      * util/grub-mknetdir.in: Likewise.
 +      * util/grub-mkrescue.in: Likewise.
 +      * util/grub-mkstandalone.in: Likewise.
 +      * util/grub-reboot.in: Likewise.
 +      * util/grub-set-default.in: Likewise.
 +      * util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Remove GRUB_PREFIX.
 +
 +      * util/grub-mkconfig.in: Remove GRUB_PREFIX.
 +      * util/grub.d/00_header.in: Compute prefix in the only place it's still
 +      used for backward compatibility.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Add new all_video module.
 +
 +      * grub-core/Makefile.am (moddep.lst): Make dependent on video.lst.
 +      * grub-core/Makefile.core.def (all_video): New module.
 +      * grub-core/genmoddep.awk: Generate dependency of all_video from
 +      video.lst.
 +      * grub-core/lib/fake_module.c: New file.
 +      * grub-core/normal/main.c (features): Add feature_all_video_module.
 +      * util/grub.d/00_header.in: Define locale_dir based on $prefix and
 +      don't do explicit search again.
 +      insmod all_video in load_video if available.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Another round of string clarification and adding TRANSLATORS comments.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-mknetdir.in: Remove erroneous reference to install_device.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/normal/charset.c (grub_utf8_to_ucs4_alloc): Fix return type
 +      to grub_ssize_t.
 +      * grub-core/normal/main.c (grub_normal_init_page): Fix msg_len type.
 +      * include/grub/charset.h (grub_utf8_to_ucs4_alloc): Fix prototype.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/normal/menu_text.c (grub_print_message_indented_real): Add
 +      trailing newline implicitly. All users updated.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Implement serial on IEEE1275 and EFI.
 +
 +      * docs/grub.texi (Platform-specific limitations): Fix the columen video
 +      on emu. Mention arc and emu as the only platforms without serial
 +      support.
 +      * grub-core/Makefile.core.def (serial): Enable on all terminfomodule and
 +      ieee1275 platforms.
 +      * grub-core/term/efi/serial.c: New file.
 +      * grub-core/term/ieee1275/serial.c: Likewise.
 +      * grub-core/term/serial.c (grub_serial_find): Disable direct port
 +      specification if no ns8250 driver is available.
 +      (grub_cmd_serial): Likewise.
 +      (GRUB_MOD_INIT) [GRUB_MACHINE_IEEE1275]: Init ofserial.
 +      (GRUB_MOD_INIT) [GRUB_MACHINE_EFI]: Init efiserial.
 +      * include/grub/efi/api.h (GRUB_EFI_SERIAL_IO_GUID): New define.
 +      (grub_efi_parity_type_t): New type.
 +      (grub_efi_stop_bits_t): Likewise.
 +      (grub_efi_serial_io_interface): New struct.
 +      * include/grub/serial.h (grub_serial_port): Make 'broken' field
 +      available for all interfaces.
 +      Add EFI and IEEE1275 fields.
 +      (grub_ofserial_init): New proto.
 +      (grub_efiserial_init): Likeiwse.
 +      * util/grub.d/00_header.in: Don't check for the presence of serial
 +      module.
 +
- 2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
++2012-02-26  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/disk/ieee1275/ofdisk.c (scan): Fix improper use of device
 +      name as if it was an alias.
 +
 +2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/lsacpi.c (options): Fix typo.
 +
 +2012-02-25  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Convert grub-emu to argp.
 +
 +      * grub-core/Makefile.core.def (kernel): Add kern/emu/argp_common.c on
 +      emu.
 +      * util/argp_common.c: Rename to ...
 +      * grub-core/kern/emu/argp_common.c: ... this. All users updated.
 +      Add missing includes.
 +      * grub-core/kern/emu/main.c: Convert to argp.
 +      * po/POTFILES.in: Regenerate.
 +      * util/grub-install.in (usage): Make first letter lowcase in messages
 +      for uniformity.
 +      * util/grub-setup.c (options): Likewise.
 +
 +2012-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/gfxmenu/gui_progress_bar.c (progress_bar_set_property):
 +      Put back accidently commented-out code.
 +
 +2012-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/hfsplus.c (grub_hfsplus_btree_iterate_node): Add btree
 +      loop check using Brent algorithm.
 +      (grub_hfsplus_btree_search): Likewise.
 +
 +2012-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub-install.in: Fix usage of wrong device for PreP install.
 +
 +2012-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * conf/Makefile.common (CFLAGS_GNULIB): Add
 +      -Wno-unsafe-loop-optimizations.
 +      * configure.ac: Remove -Wmissing-declarations and -Wmissing-prototypes
 +      on tools.
 +      * grub-core/commands/legacycfg.c: Add pragma to skip
 +      -Wunsafe-loop-optimizations.
 +      (check_password_md5_real): Fix loop counter type.
 +      * grub-core/commands/testload.c (grub_cmd_testload): Fix over the EOF
 +      reading.
 +      * grub-core/disk/ldm.c (grub_util_get_ldm): Fix logic error.
 +      * grub-core/fs/zfs/zfs_sha256.c (zio_checksum_SHA256): Add safety
 +      loop condition.
 +      * grub-core/io/gzio.c: Add pragma to skip -Wunsafe-loop-optimizations.
 +      * grub-core/lib/LzmaEnc.c (GetOptimum): Avoid possible infinite loop.
 +      * grub-core/net/net.c (grub_net_route_address): Add safety loop
 +      condition.
 +      * grub-core/normal/charset.c (bidi_line_wrap): Likewise.
 +      * grub-core/normal/cmdline.c (grub_set_history): Fix loop types and
 +      avoid possible infinite loops.
 +      * grub-core/script/parser.y: Add pragma to skip -Wmissing-declarations
 +      and -Wunsafe-loop-optimizations.
 +      * grub-core/script/yylex.l: Likewise.
 +      * util/grub-mkfont.c: Add pragma to skip -Wunsafe-loop-optimizations.
 +      (print_glyphs): Avoid infinite loops.
 +      * util/grub-mkimage.c (compress_kernel_xz): Fix format security.
 +
 +2012-02-24  GrĂ©goire Sutre  <gregoire.sutre@gmail.com>
 +
 +      * grub-core/commands/lsacpi.c (disp_acpi_xsdt_table): Fix loop condition
 +      to avoid infinite loop.
 +      (disp_acpi_rsdt_table): Likewise.
 +
 +2012-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/font/font.c (grub_font_load): Add support for default
 +      path for fonts ($prefix/fonts).
 +      * grub-core/kern/corecmd.c (grub_core_cmd_insmod): Unify condition
 +      for checking if string is a path.
 +      * grub-core/normal/main.c (features): Add feature_default_font_path.
 +      * util/grub-mkconfig.in: Skip mangling of GRUB_FONT into GRUB_FONT_PATH.
 +      * util/grub.d/00_header.in: Use default directory if possible.
 +      * util/grub-install.in: Install unicode.pf2.
 +
 +2012-02-24  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * po/README: Add de_CH and en@quot to po/LINGUAS generation command.
 +      * po/Rules-swiss: New file.
 +      * po/swiss.sed: Likewise.
 +
 +2012-02-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/btrfs.c (find_device): Fix typos.
 +      * grub-core/fs/zfs/zfs.c (read_device): Likewise.
 +      * util/grub-mkrelpath.c (argp_parser): Likewise.
 +      Reported by: Yuri Chornoivan.
 +
 +2012-02-23  Dalet Omega <daletomega@gmail.com>
 +
 +      * grub-core/gfxmenu/gui_label.c (label_set_property): Add template
 +      for usual informative messages.
 +
 +2012-02-23  Dalet Omega <daletomega@gmail.com>
 +
 +      Starfield theme.
 +
 +      * Makefile.am: Define starfield_DATA and dejavu.pf2 generation.
 +      * conf/Makefile.common: Define starfielddir.
 +      * configure.ac: Configure starfield.
 +      * themes/starfield/COPYING.CC-BY-SA-3.0: New file.
 +      * themes/starfield/README: Likewise.
 +      * themes/starfield/blob_w.png: Likewise.
 +      * themes/starfield/boot_menu_c.png: Likewise.
 +      * themes/starfield/boot_menu_e.png: Likewise.
 +      * themes/starfield/boot_menu_n.png: Likewise.
 +      * themes/starfield/boot_menu_ne.png: Likewise.
 +      * themes/starfield/boot_menu_nw.png: Likewise.
 +      * themes/starfield/boot_menu_s.png: Likewise.
 +      * themes/starfield/boot_menu_se.png: Likewise.
 +      * themes/starfield/boot_menu_sw.png: Likewise.
 +      * themes/starfield/boot_menu_w.png: Likewise.
 +      * themes/starfield/slider_c.png: Likewise.
 +      * themes/starfield/slider_n.png: Likewise.
 +      * themes/starfield/slider_s.png: Likewise.
 +      * themes/starfield/src/blob_nw.xcf: Likewise.
 +      * themes/starfield/src/bootmenu/: Likewise.
 +      * themes/starfield/src/bootmenu/center.xcf: Likewise.
 +      * themes/starfield/src/bootmenu/corner.xcf: Likewise.
 +      * themes/starfield/src/bootmenu/side.xcf: Likewise.
 +      * themes/starfield/src/slider_c.xcf: Likewise.
 +      * themes/starfield/src/slider_n.xcf: Likewise.
 +      * themes/starfield/src/slider_s.xcf: Likewise.
 +      * themes/starfield/src/terminalbox/: Likewise.
 +      * themes/starfield/src/terminalbox/center.xcf: Likewise.
 +      * themes/starfield/src/terminalbox/corner.xcf: Likewise.
 +      * themes/starfield/src/terminalbox/side.xcf: Likewise.
 +      * themes/starfield/starfield.png: Likewise.
 +      * themes/starfield/terminal_box_c.png: Likewise.
 +      * themes/starfield/terminal_box_e.png: Likewise.
 +      * themes/starfield/terminal_box_n.png: Likewise.
 +      * themes/starfield/terminal_box_ne.png: Likewise.
 +      * themes/starfield/terminal_box_nw.png: Likewise.
 +      * themes/starfield/terminal_box_s.png: Likewise.
 +      * themes/starfield/terminal_box_se.png: Likewise.
 +      * themes/starfield/terminal_box_sw.png: Likewise.
 +      * themes/starfield/terminal_box_w.png: Likewise.
 +      * themes/starfield/theme.txt: Likewise.
 +
 +2012-02-23  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/grub.d/00_header.in: Add missing export theme.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/ieee1275/ofpath.c: Remove include of malloc.h since stdlib is
 +      already included.
 +      Reported by: Eren D.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * conf/Makefile.common (grubdatadir): Removed.
 +      (Makefile.am): Move eveything grubdata to pkgdata.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/acpihalt.c (get_sleep_type):
 +      Remove unused variable.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * include/grub/acpi.h (GRUB_ASCII_OPCODE): Add
 +      GRUB_ACPI_OPCODE_STRING_CONST, GRUB_ACPI_OPCODE_BUFFER,
 +      GRUB_ACPI_OPCODE_CREATE_WORD_FIELD
 +      and GRUB_ACPI_OPCODE_CREATE_BYTE_FIELD.
 +      * grub-core/commands/acpihalt.c [GRUB_DSDT_TEST]: Replace include of
 +      i18n with gettext no-op.
 +      (skip_data_ref_object): Support GRUB_ACPI_OPCODE_BUFFER and
 +      GRUB_ACPI_OPCODE_STRING_CONST.
 +      (get_sleep_type): Support GRUB_ACPI_OPCODE_CREATE_WORD_FIELD and
 +      GRUB_ACPI_OPCODE_CREATE_BYTE_FIELD. Add handling of unknown opcodes.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * po/POTFILES.in: Regenerate.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * Makefile.util.def (libgrubmods.a): Add -Wno-error=logical-op
 +      -Wno-error=missing-noreturn.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/fs/affs.c (grub_affs_read_block): Avoid <= in loop
 +      condition to avoid possibly infinite loops.
 +      * grub-core/lib/pbkdf2.c (grub_crypto_pbkdf2): Likewise.
 +      * grub-core/lib/xzembed/xz_dec_bcj.c (bcj_powerpc): Likewise.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/normal/charset.c (bidi_line_wrap): Avoid <= in loop
 +      condition to avoid possibly infinite loops.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/emu/hostdisk.c (read_device_map): Add missing noreturn
 +      on show_error.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/disk.c (grub_disk_write): Add missing const qualifier.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/kern/corecmd.c (grub_core_cmd_ls): Add missing var init.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * util/bin2h.c (usage): Add missing attribute noreturn.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/commands/testload.c (grub_cmd_testload): Fix overflow
 +      if the size isn't divisible by 512.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      Make list_push and list_remove functions rather than inline functions
 +      to decrease size and avoid aliasing violations.
 +
 +      * include/grub/list.h (grub_list_push): Move to ...
 +      * grub-core/kern/list.c (grub_list_push): ... here. Don't inline.
 +      * include/grub/list.h (grub_list_remove): Move to ...
 +      * grub-core/kern/list.c (grub_list_remove): ... here. Don't inline.
 +
 +2012-02-22  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * configure.ac: Disable for now -Wstack-protector, -Wunreachable-code
 +      and -Wunused-result.
 +
 +2012-02-21  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * grub-core/net/net.c (grub_cmd_deladdr): Fix index.
 +      Reported by: Seth Goldberg
 +
 +2012-02-21  Vladimir Serbinenko  <phcoder@gmail.com>
 +
 +      * configure.ac: Add -fno-builtin-gettext on host if NLS is disabled.
 +
 +2012-02-19  Samuel Thibault  <samuel.thibault@ens-lyon.org>
 +
 +      * util/grub-mkconfig.in (GRUB_CMDLINE_GNUMACH): Export variable.
 +      * util/grub.d/10_hurd.in: Include GRUB_CMDLINE_GNUMACH in gnumach
 +      command line.
 +      * docs/grub.texi (Simple configuration): Document
 +      GRUB_CMDLINE_GNUMACH.
 +
 +2012-02-18  Vladimir Serbinenko  <phcoder@gmail.com>
  
        * conf/Makefile.common (platform_SCRIPTS): New variable.
        (platform_PROGRAMS): Likewise.
@@@ -1795,7 -1798,12 +1802,18 @@@ module = 
    common = lib/crc64.c;
  };
  
 -};  
 +module = {
 +  name = all_video;
 +  common = lib/fake_module.c;
 +};
++
+ module = {
+   name = gdb;
+   common = gdb/cstub.c;
+   common = gdb/gdb.c;
+   i386 = gdb/i386/idt.c;
+   i386 = gdb/i386/machdep.S;
+   i386 = gdb/i386/signal.c;
+   enable = i386;
++};
++