fpc.paketlendi
This commit is contained in:
		
							parent
							
								
									12d160da1e
								
							
						
					
					
						commit
						b23ed0b23d
					
				
					 4 changed files with 826 additions and 0 deletions
				
			
		
							
								
								
									
										41
									
								
								talimatname/genel/fpc/talimat
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								talimatname/genel/fpc/talimat
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
# Description: Özgür pascal derleyicisi
 | 
			
		||||
# URL: http://www.freepascal.org/
 | 
			
		||||
# Packager: milisarge
 | 
			
		||||
# Depends on:
 | 
			
		||||
 | 
			
		||||
name=fpc
 | 
			
		||||
version=2.6.4
 | 
			
		||||
release=1
 | 
			
		||||
source=(ftp://ftp.freepascal.org/pub/fpc/dist/$version/source/fpcbuild-$version.tar.gz
 | 
			
		||||
	http://crux.ster.zone/downloads/fpc/md5/2f440a0e40d134ed67db2fbf58c6e30a/x86_64-linux-ppcx64.bz2
 | 
			
		||||
	ftp://ftp.freepascal.org/pub/fpc/contrib/libgdb/v7.2/libgdb_mingw702.zip)
 | 
			
		||||
 | 
			
		||||
build() {
 | 
			
		||||
	bunzip2 x86_64-linux-ppcx64.bz2
 | 
			
		||||
	chmod 0755 x86_64-linux-ppcx64
 | 
			
		||||
 | 
			
		||||
	export LIBGDBDIR=$SRC/libgdb/win64/x86_64/
 | 
			
		||||
 | 
			
		||||
	cd fpcbuild-$version/fpcsrc/
 | 
			
		||||
	
 | 
			
		||||
	make -j 1 PP=$SRC/x86_64-linux-ppcx64 build
 | 
			
		||||
 | 
			
		||||
	cp $SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64 \
 | 
			
		||||
		$SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64.new
 | 
			
		||||
 | 
			
		||||
	make -j 1 PP=$SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64.new build
 | 
			
		||||
	rm $SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64.new
 | 
			
		||||
 | 
			
		||||
	make -j 1 PP=$SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64 rtl_clean
 | 
			
		||||
	make -j 1 PP=$SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64 rtl packages_all utils
 | 
			
		||||
 | 
			
		||||
	set -- PP=$SRC/fpcbuild-$version/fpcsrc/compiler/ppcx64 \
 | 
			
		||||
		FPCMAKE=$SRC/fpcbuild-$version/fpcsrc/utils/fpcm/fpcmake \
 | 
			
		||||
		INSTALL_PREFIX=$PKG/usr \
 | 
			
		||||
		INSTALL_DOCDIR=$PKG/usr/share/doc/fpcbuild \
 | 
			
		||||
		INSTALL_MANDIR=$PKG/usr/share/man \
 | 
			
		||||
		INSTALL_SOURCEDIR=$PKG/usr/lib/fpc/fpcbuild-$version/source
 | 
			
		||||
 | 
			
		||||
	make -j 1 "$@" compiler_install rtl_install packages_install utils_install
 | 
			
		||||
	ln -sf /usr/lib/fpc/$version/ppcx64 $PKG/usr/bin/ppcx64
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										737
									
								
								talimatname/genel/fpc3/fpc-gdb.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										737
									
								
								talimatname/genel/fpc3/fpc-gdb.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,737 @@
 | 
			
		|||
diff -wbBur fpcbuild-2.6.0/fpcsrc/ide/fp.pas fpcbuild-2.6.0.my/fpcsrc/ide/fp.pas
 | 
			
		||||
--- fpcbuild-2.6.0/fpcsrc/ide/fp.pas	2010-08-20 15:04:44.000000000 +0400
 | 
			
		||||
+++ fpcbuild-2.6.0.my/fpcsrc/ide/fp.pas	2013-01-14 20:55:58.472376421 +0400
 | 
			
		||||
@@ -14,6 +14,9 @@
 | 
			
		||||
  **********************************************************************}
 | 
			
		||||
 program FP;
 | 
			
		||||
 
 | 
			
		||||
+{$LINKLIB libz.so}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
 {$ifdef Windows}
 | 
			
		||||
 { some windows versions, namely at least XP x64 don't like if the IDE stack
 | 
			
		||||
   is too big }
 | 
			
		||||
diff -wbBur fpcbuild-2.6.0/fpcsrc/packages/gdbint/Makefile fpcbuild-2.6.0.my/fpcsrc/packages/gdbint/Makefile
 | 
			
		||||
--- fpcbuild-2.6.0/fpcsrc/packages/gdbint/Makefile	2011-12-11 00:19:00.000000000 +0400
 | 
			
		||||
+++ fpcbuild-2.6.0.my/fpcsrc/packages/gdbint/Makefile	2013-01-14 20:32:15.545303270 +0400
 | 
			
		||||
@@ -2337,10 +2337,12 @@
 | 
			
		||||
 endif
 | 
			
		||||
 ifeq ($(OS_SOURCE),openbsd)
 | 
			
		||||
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 | 
			
		||||
+override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
 | 
			
		||||
 endif
 | 
			
		||||
 ifndef CROSSBOOTSTRAP
 | 
			
		||||
 ifneq ($(BINUTILSPREFIX),)
 | 
			
		||||
 override FPCOPT+=-XP$(BINUTILSPREFIX)
 | 
			
		||||
+override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
 | 
			
		||||
 endif
 | 
			
		||||
 ifneq ($(BINUTILSPREFIX),)
 | 
			
		||||
 override FPCOPT+=-Xr$(RLINKPATH)
 | 
			
		||||
diff -wbBur fpcbuild-2.6.0/fpcsrc/packages/gdbint/src/gdbint.pp fpcbuild-2.6.0.my/fpcsrc/packages/gdbint/src/gdbint.pp
 | 
			
		||||
--- fpcbuild-2.6.0/fpcsrc/packages/gdbint/src/gdbint.pp	2011-12-10 20:50:23.000000000 +0400
 | 
			
		||||
+++ fpcbuild-2.6.0.my/fpcsrc/packages/gdbint/src/gdbint.pp	2013-01-14 20:53:27.332331458 +0400
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
 
 | 
			
		||||
 {$define NotImplemented}
 | 
			
		||||
 
 | 
			
		||||
+{$define GDB_DISABLE_PYTHON}
 | 
			
		||||
 {$define COMPILING_GDBINT_UNIT}
 | 
			
		||||
 {$ifdef USE_GDBLIBINC}
 | 
			
		||||
   {$i gdblib.inc}
 | 
			
		||||
@@ -50,7 +51,6 @@
 | 
			
		||||
 {$ifdef GDB_V601}
 | 
			
		||||
   {$info using gdb 6.1.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
   {$undef GDB_HAS_DEPRECATED_CBPH}
 | 
			
		||||
 {$endif def GDB_V601}
 | 
			
		||||
 
 | 
			
		||||
@@ -58,14 +58,12 @@
 | 
			
		||||
 {$ifdef GDB_V602}
 | 
			
		||||
   {$info using gdb 6.2.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
 {$endif def GDB_V602}
 | 
			
		||||
 
 | 
			
		||||
 { 6.3.x }
 | 
			
		||||
 {$ifdef GDB_V603}
 | 
			
		||||
   {$info using gdb 6.3.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
 {$endif def GDB_V603}
 | 
			
		||||
 
 | 
			
		||||
 { 6.4.x }
 | 
			
		||||
@@ -73,7 +71,6 @@
 | 
			
		||||
   {$info using gdb 6.4.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
   {$define GDB_NEEDS_NO_ERROR_INIT}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
 {$endif def GDB_V604}
 | 
			
		||||
 
 | 
			
		||||
 { 6.5.x }
 | 
			
		||||
@@ -87,7 +84,6 @@
 | 
			
		||||
 {$ifdef GDB_V606}
 | 
			
		||||
   {$info using gdb 6.6.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
   {$define GDB_USES_BP_LOCATION}
 | 
			
		||||
   {$define GDB_NEEDS_NO_ERROR_INIT}
 | 
			
		||||
   {$define GDB_USES_EXPAT_LIB}
 | 
			
		||||
@@ -98,7 +94,6 @@
 | 
			
		||||
 {$ifdef GDB_V607}
 | 
			
		||||
   {$info using gdb 6.7.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
   {$define GDB_USES_BP_LOCATION}
 | 
			
		||||
   {$define GDB_NEEDS_NO_ERROR_INIT}
 | 
			
		||||
   {$define GDB_USES_EXPAT_LIB}
 | 
			
		||||
@@ -109,7 +104,6 @@
 | 
			
		||||
 {$ifdef GDB_V608}
 | 
			
		||||
   {$info using gdb 6.8.x}
 | 
			
		||||
   {$define GDB_V6}
 | 
			
		||||
-  {$define GDB_HAS_DB_COMMANDS}
 | 
			
		||||
   {$define GDB_USES_BP_LOCATION}
 | 
			
		||||
   {$define GDB_BP_LOCATION_HAS_GLOBAL_NEXT}
 | 
			
		||||
   {$define GDB_NEEDS_NO_ERROR_INIT}
 | 
			
		||||
@@ -120,13 +114,64 @@
 | 
			
		||||
   {$define GDB_HAS_BP_NONE}
 | 
			
		||||
 {$endif def GDB_V608}
 | 
			
		||||
 
 | 
			
		||||
+{ 7.5.x }
 | 
			
		||||
+{$ifdef GDB_V705}
 | 
			
		||||
+  {$info using gdb 7.5.x}
 | 
			
		||||
+  {$define GDB_V7}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_GDBARCH}
 | 
			
		||||
+  {$define GDB_HAS_PROGRAM_SPACE}
 | 
			
		||||
+  {$define GDB_NO_UIOUT}
 | 
			
		||||
+  {$define GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+  {$define GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+  {$define GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
+  {$define GDB_USES_BP_OPS}
 | 
			
		||||
+  {$define GDB_BP_TI_HAS_LENGTH}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_REFCOUNT}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_OPS}
 | 
			
		||||
+  {$define GDB_UI_FILE_HAS_WRITE_ASYNC}
 | 
			
		||||
+  {$ifdef win32}
 | 
			
		||||
+      {$define GDB_USES_LIBADVAPI32}
 | 
			
		||||
+  {$endif win32}
 | 
			
		||||
+{$endif def GDB_V705}
 | 
			
		||||
+
 | 
			
		||||
+{ 7.4.x }
 | 
			
		||||
+{$ifdef GDB_V704}
 | 
			
		||||
+  {$info using gdb 7.4.x}
 | 
			
		||||
+  {$define GDB_V7}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_GDBARCH}
 | 
			
		||||
+  {$define GDB_HAS_PROGRAM_SPACE}
 | 
			
		||||
+  {$define GDB_NO_UIOUT}
 | 
			
		||||
+  {$define GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+  {$define GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+  {$define GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
+  {$define GDB_USES_BP_OPS}
 | 
			
		||||
+  {$define GDB_BP_TI_HAS_LENGTH}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_REFCOUNT}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_OPS}
 | 
			
		||||
+  {$define GDB_UI_FILE_HAS_WRITE_ASYNC}
 | 
			
		||||
+  {$ifdef win32}
 | 
			
		||||
+      {$define GDB_USES_LIBADVAPI32}
 | 
			
		||||
+  {$endif win32}
 | 
			
		||||
+{$endif def GDB_V704}
 | 
			
		||||
+
 | 
			
		||||
 { 7.3.x }
 | 
			
		||||
 {$ifdef GDB_V703}
 | 
			
		||||
   {$info using gdb 7.3.x}
 | 
			
		||||
   {$define GDB_V7}
 | 
			
		||||
   {$define GDB_BP_LOCATION_HAS_GDBARCH}
 | 
			
		||||
   {$define GDB_HAS_PROGRAM_SPACE}
 | 
			
		||||
-{$endif def GDB_V702}
 | 
			
		||||
+  {$define GDB_BP_TI_HAS_LENGTH}
 | 
			
		||||
+  {$define GDB_BP_LOCATION_HAS_REFCOUNT}
 | 
			
		||||
+  {$ifdef GDB_CVS}
 | 
			
		||||
+    {$define GDB_NO_UIOUT}
 | 
			
		||||
+    {$define GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+    {$define GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+    {$define GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
+    {$define GDB_USES_BP_OPS}
 | 
			
		||||
+    {$define GDB_BP_LOCATION_HAS_OPS}
 | 
			
		||||
+    {$define GDB_UI_FILE_HAS_WRITE_ASYNC}
 | 
			
		||||
+  {$endif GDB_CVS}
 | 
			
		||||
+{$endif def GDB_V703}
 | 
			
		||||
 
 | 
			
		||||
 { 7.2.x }
 | 
			
		||||
 {$ifdef GDB_V702}
 | 
			
		||||
@@ -448,8 +493,11 @@
 | 
			
		||||
   {$LINKLIB libintl.a}
 | 
			
		||||
   {$LINKLIB imagehlp}
 | 
			
		||||
   {$endif not USE_MINGW_GDB}
 | 
			
		||||
-  {$LINKLIB kernel32}
 | 
			
		||||
+  {$ifdef GDB_USES_LIBADVAPI32}
 | 
			
		||||
+    {$LINKLIB advapi32}
 | 
			
		||||
+  {$endif GDB_USES_LIBADVAPI32}
 | 
			
		||||
   {$LINKLIB user32}
 | 
			
		||||
+  {$LINKLIB kernel32}
 | 
			
		||||
 {$endif win32}
 | 
			
		||||
 
 | 
			
		||||
 {$ifdef win64}
 | 
			
		||||
@@ -588,9 +636,11 @@
 | 
			
		||||
 type
 | 
			
		||||
 
 | 
			
		||||
   pui_file = ^ui_file;
 | 
			
		||||
+  pstdio_file = ^stdio_file;
 | 
			
		||||
 
 | 
			
		||||
   ui_file_flush_ftype = procedure(stream : pui_file);cdecl;
 | 
			
		||||
   ui_file_write_ftype = procedure(stream : pui_file;buf : pchar;len : longint);cdecl;
 | 
			
		||||
+  ui_file_write_async_save_ftype = procedure(stream : pui_file;buf : pchar;len : longint);cdecl;
 | 
			
		||||
   ui_file_fputs_ftype = procedure(buf : pchar; stream : pui_file);cdecl;
 | 
			
		||||
   ui_file_delete_ftype = procedure(stream : pui_file);cdecl;
 | 
			
		||||
   ui_file_isatty_ftype = function(stream : pui_file) : longbool;cdecl;
 | 
			
		||||
@@ -605,6 +655,9 @@
 | 
			
		||||
       magic : plongint;
 | 
			
		||||
       to_flush  : ui_file_flush_ftype;
 | 
			
		||||
       to_write  : ui_file_write_ftype;
 | 
			
		||||
+      {$ifdef GDB_UI_FILE_HAS_WRITE_ASYNC}
 | 
			
		||||
+      to_write_async_safe   : ui_file_write_async_save_ftype;
 | 
			
		||||
+      {$endif}
 | 
			
		||||
       to_fputs  : ui_file_fputs_ftype;
 | 
			
		||||
       {$ifdef GDB_V6}
 | 
			
		||||
       to_read   : ui_file_read_ftype;
 | 
			
		||||
@@ -616,6 +669,13 @@
 | 
			
		||||
       to_data   : pointer;
 | 
			
		||||
     end;
 | 
			
		||||
 
 | 
			
		||||
+  stdio_file = record
 | 
			
		||||
+      magic : plongint;
 | 
			
		||||
+      _file : P_C_FILE;
 | 
			
		||||
+      df : longint;
 | 
			
		||||
+      close_p : longint;
 | 
			
		||||
+    end;
 | 
			
		||||
+
 | 
			
		||||
   { used to delete stdio_ui_file  gdb_stdout and gdb_stderr }
 | 
			
		||||
   procedure ui_file_delete(stream : pui_file);cdecl;external;
 | 
			
		||||
 
 | 
			
		||||
@@ -774,10 +834,16 @@
 | 
			
		||||
 {$ifdef GDB_V6}
 | 
			
		||||
 type
 | 
			
		||||
   ui_out = pointer;
 | 
			
		||||
+{$ifndef GDB_NO_UIOUT}
 | 
			
		||||
 var
 | 
			
		||||
   uiout : ui_out;cvar;external;
 | 
			
		||||
+{$else  GDB_NO_UIOUT}
 | 
			
		||||
+var
 | 
			
		||||
+  cli_uiout : ui_out;cvar;external;
 | 
			
		||||
+  current_uiout : ui_out;cvar;external;
 | 
			
		||||
+{$endif GDB_NO_UIOUT}
 | 
			
		||||
 function cli_out_new (stream : pui_file):ui_out;cdecl;external;
 | 
			
		||||
-{$endif}
 | 
			
		||||
+{$endif GDB_V6}
 | 
			
		||||
 
 | 
			
		||||
 {$ifdef go32v2}
 | 
			
		||||
   { needed to be sure %fs contains the DOS memory selector
 | 
			
		||||
@@ -815,8 +881,11 @@
 | 
			
		||||
   jmp_buf = dpmi_jmp_buf;
 | 
			
		||||
   pjmp_buf = pdpmi_jmp_buf;
 | 
			
		||||
 
 | 
			
		||||
+
 | 
			
		||||
   function setjmp(var rec : jmp_buf) : longint;cdecl;external;
 | 
			
		||||
 
 | 
			
		||||
+  function malloc(size : longint) : pointer;cdecl;external;
 | 
			
		||||
+
 | 
			
		||||
   procedure longjmp(var rec : jmp_buf;return_value : longint);cdecl;external;
 | 
			
		||||
 
 | 
			
		||||
   procedure reload_fs;assembler;
 | 
			
		||||
@@ -869,6 +938,13 @@
 | 
			
		||||
      pCORE_ADDR = ^CORE_ADDR;
 | 
			
		||||
      pblock = ^block;
 | 
			
		||||
 
 | 
			
		||||
+     tframe_id = record
 | 
			
		||||
+       stack_addr, code_addr, special_addr : CORE_ADDR;
 | 
			
		||||
+       addr_p_flags : byte;{ for three 1 bit flags
 | 
			
		||||
+       stack_addr_p, code_addr_p, special_addr_p : cint : 1; }
 | 
			
		||||
+       inline_depth : longint;
 | 
			
		||||
+     end;
 | 
			
		||||
+
 | 
			
		||||
      tlanguage = (language_unknown,language_auto,language_c,
 | 
			
		||||
        language_cplus,language_java,language_chill,
 | 
			
		||||
        language_fortran,language_m2,language_asm,
 | 
			
		||||
@@ -897,9 +973,18 @@
 | 
			
		||||
 
 | 
			
		||||
      target_hw_bp_type = (hw_write, hw_read, hw_access, hw_execute);
 | 
			
		||||
 
 | 
			
		||||
+     { pointer to structures that we don't need }
 | 
			
		||||
+     pbp_ops = pointer;
 | 
			
		||||
+     pbp_location_ops = pointer;
 | 
			
		||||
+     pprogram_space = pointer;
 | 
			
		||||
+     pgdbarch = pointer;
 | 
			
		||||
+
 | 
			
		||||
 {$PACKRECORDS 4}
 | 
			
		||||
      pbreakpoint = ^breakpoint;
 | 
			
		||||
      breakpoint = record
 | 
			
		||||
+{$ifdef GDB_USES_BP_OPS}
 | 
			
		||||
+          ops : pbp_ops;
 | 
			
		||||
+{$endif GDB_USES_BP_OPS}
 | 
			
		||||
           next : pbreakpoint;
 | 
			
		||||
           typ : bptype;
 | 
			
		||||
           enable : tenable;
 | 
			
		||||
@@ -910,9 +995,15 @@
 | 
			
		||||
 {$else not GDB_USES_BP_LOCATION}
 | 
			
		||||
           address : CORE_ADDR;
 | 
			
		||||
 {$endif not GDB_USES_BP_LOCATION}
 | 
			
		||||
+{$ifndef GDB_USES_BP_OPS}
 | 
			
		||||
           line_number : longint;
 | 
			
		||||
           source_file : pchar;
 | 
			
		||||
+{$endif not GDB_USES_BP_OPS}
 | 
			
		||||
           silent : byte;
 | 
			
		||||
+{$ifdef GDB_USES_BP_OPS}
 | 
			
		||||
+          display_canonical: byte;
 | 
			
		||||
+{$endif GDB_USES_BP_OPS}
 | 
			
		||||
+
 | 
			
		||||
           ignore_count : longint;
 | 
			
		||||
 {$ifndef GDB_USES_BP_LOCATION}
 | 
			
		||||
           shadow_contents : array[0..15] of char;
 | 
			
		||||
@@ -919,10 +1010,21 @@
 | 
			
		||||
           inserted : char;
 | 
			
		||||
           duplicate : char;
 | 
			
		||||
 {$endif not GDB_USES_BP_LOCATION}
 | 
			
		||||
+
 | 
			
		||||
           commands : pointer; {^command_line}
 | 
			
		||||
+{$ifdef GDB_USES_BP_OPS}
 | 
			
		||||
+          frame_id : tframe_id;
 | 
			
		||||
+          pspace : pprogram_space;
 | 
			
		||||
+{$else not GDB_USES_BP_OPS}
 | 
			
		||||
           frame : CORE_ADDR;
 | 
			
		||||
           cond : pointer; {^expression}
 | 
			
		||||
-          addr_string : ^char;
 | 
			
		||||
+{$endif GDB_USES_BP_OPS}
 | 
			
		||||
+          addr_string : pchar;
 | 
			
		||||
+{$ifdef GDB_USES_BP_OPS}
 | 
			
		||||
+          filter : pchar;
 | 
			
		||||
+          addr_string_range_end : pchar;
 | 
			
		||||
+          gdbarch : pgdbarch;
 | 
			
		||||
+{$endif GDB_USES_BP_OPS}
 | 
			
		||||
           language : tlanguage;
 | 
			
		||||
           input_radix : longint;
 | 
			
		||||
           cond_string : ^char;
 | 
			
		||||
@@ -941,6 +1043,9 @@
 | 
			
		||||
      bp_target_info = record
 | 
			
		||||
           placed_address_space : pointer;{paddress_space;}
 | 
			
		||||
           placed_address : CORE_ADDR;
 | 
			
		||||
+{$ifdef GDB_BP_TI_HAS_LENGTH}
 | 
			
		||||
+          length : longint;
 | 
			
		||||
+{$endif GDB_BP_TI_HAS_LENGTH}
 | 
			
		||||
           shadow_contents : array[0..15] of char;
 | 
			
		||||
           shadow_len : longint;
 | 
			
		||||
           placed_size : longint;
 | 
			
		||||
@@ -948,9 +1053,17 @@
 | 
			
		||||
 
 | 
			
		||||
      bp_location = record
 | 
			
		||||
          next : pbp_location;
 | 
			
		||||
+{$ifdef GDB_BP_LOCATION_HAS_OPS}
 | 
			
		||||
+         ops : pbp_location_ops;
 | 
			
		||||
+{$endif GDB_BP_LOCATION_HAS_OPS}
 | 
			
		||||
+
 | 
			
		||||
+{$ifdef GDB_BP_LOCATION_HAS_REFCOUNT}
 | 
			
		||||
+        refc : longint;
 | 
			
		||||
+{$else}
 | 
			
		||||
 {$ifdef GDB_BP_LOCATION_HAS_GLOBAL_NEXT}
 | 
			
		||||
          global_next : pbp_location;
 | 
			
		||||
 {$endif GDB_BP_LOCATION_HAS_GLOBAL_NEXT}
 | 
			
		||||
+{$endif}
 | 
			
		||||
          loc_type : bp_loc_type;
 | 
			
		||||
          owner : pbreakpoint;
 | 
			
		||||
 {$ifdef GDB_BP_LOCATION_HAS_GLOBAL_NEXT}
 | 
			
		||||
@@ -961,10 +1074,10 @@
 | 
			
		||||
          inserted : byte;
 | 
			
		||||
          duplicate : byte;
 | 
			
		||||
 {$ifdef GDB_BP_LOCATION_HAS_GDBARCH}
 | 
			
		||||
-         gdbarch : pointer;{pgdbarch;}
 | 
			
		||||
+         gdbarch : pgdbarch;
 | 
			
		||||
 {$endif GDB_BP_LOCATION_HAS_GDBARCH}
 | 
			
		||||
 {$ifdef GDB_HAS_PROGRAM_SPACE}
 | 
			
		||||
-         pspace : pointer;{pprogram_space;}
 | 
			
		||||
+         pspace : pprogram_space;
 | 
			
		||||
 {$endif GDB_HAS_PROGRAM_SPACE}
 | 
			
		||||
          address : CORE_ADDR;
 | 
			
		||||
 {$ifdef GDB_BP_LOCATION_HAS_GLOBAL_NEXT}
 | 
			
		||||
@@ -979,6 +1092,11 @@
 | 
			
		||||
          target_info : bp_target_info;
 | 
			
		||||
          overlay_target_info : bp_target_info;
 | 
			
		||||
          events_till_retirement : longint;
 | 
			
		||||
+{$ifdef GDB_USES_BP_OPS}
 | 
			
		||||
+        { line and source file are in location }
 | 
			
		||||
+          line_number : longint;
 | 
			
		||||
+          source_file : pchar;
 | 
			
		||||
+{$endif not GDB_USES_BP_OPS}
 | 
			
		||||
       end;
 | 
			
		||||
 
 | 
			
		||||
      tfreecode=(free_nothing,free_contents,free_linetable);
 | 
			
		||||
@@ -1488,7 +1606,9 @@
 | 
			
		||||
   {$endif ndef GDB_HAS_OBSERVER_NOTIFY_BREAKPOINT_CREATED}
 | 
			
		||||
   current_target : target_ops;cvar;external;
 | 
			
		||||
   stop_pc      : CORE_ADDR;cvar;external;
 | 
			
		||||
-  { Only used from GDB 5.01 but doesn't hurst otherwise }
 | 
			
		||||
+  { Only used from GDB 5.0 but doesn't hurst otherwise }
 | 
			
		||||
+  { This global variable is declared in defs.h as external
 | 
			
		||||
+    and instanciated in main.c since version 5.0. }
 | 
			
		||||
   interpreter_p : pchar;cvar;public;
 | 
			
		||||
 
 | 
			
		||||
 { we need also to declare some vars }
 | 
			
		||||
@@ -1502,13 +1622,22 @@
 | 
			
		||||
 
 | 
			
		||||
 { Whether xdb commands will be handled }
 | 
			
		||||
 {$ifdef GDB_HAS_DB_COMMANDS}
 | 
			
		||||
+  { These two global variables are declared in defs.h
 | 
			
		||||
+    since version 4.18 }
 | 
			
		||||
   xdb_commands : longint;cvar;public;
 | 
			
		||||
 
 | 
			
		||||
 { Whether dbx commands will be handled }
 | 
			
		||||
   dbx_commands : longint;cvar;public;
 | 
			
		||||
 {$endif GDB_HAS_DB_COMMANDS}
 | 
			
		||||
 
 | 
			
		||||
+{$ifdef GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
 var
 | 
			
		||||
+  instream : P_C_FILE;cvar;external;
 | 
			
		||||
+  function gdb_fopen (filename : pchar; mode : pchar) : pui_file;cdecl;external;
 | 
			
		||||
+{$endif GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+var
 | 
			
		||||
+  { The four following variables are defined in defs.h 
 | 
			
		||||
+    and instanciated in main.c since version 5.0 }
 | 
			
		||||
   gdb_stdout : pui_file;cvar;public;
 | 
			
		||||
   gdb_stderr : pui_file;cvar;public;
 | 
			
		||||
   gdb_stdlog : pui_file;cvar;public;
 | 
			
		||||
@@ -1516,6 +1645,9 @@
 | 
			
		||||
   event_loop_p : longint;cvar;public;
 | 
			
		||||
 {$ifdef GDB_V6}
 | 
			
		||||
 (* target IO streams *)
 | 
			
		||||
+  { The three following variables are declared in defs.h
 | 
			
		||||
+    and instanciated in main.c since version 6.0 }
 | 
			
		||||
+  gdb_stdin : pui_file;cvar;public;
 | 
			
		||||
   gdb_stdtargin : pui_file;cvar;public;
 | 
			
		||||
   gdb_stdtargerr : pui_file;cvar;public;
 | 
			
		||||
 {$endif}
 | 
			
		||||
@@ -1523,7 +1655,10 @@
 | 
			
		||||
 { used for gdb_stdout and gdb_stderr }
 | 
			
		||||
 function  xmalloc(size : longint) : pointer;cdecl;external;
 | 
			
		||||
 { used for QueryHook }
 | 
			
		||||
-function xstrvprintf(msg : pchar) : pchar; varargs; cdecl; external;
 | 
			
		||||
+{ xvasprintf is present at least from GDB 5.3
 | 
			
		||||
+  while xstrvprintf only appears in version 6.2,
 | 
			
		||||
+  so only use xvasprintf function }
 | 
			
		||||
+function xvasprintf(ret : ppchar; msg : pchar) : pchar; varargs; cdecl; external;
 | 
			
		||||
 procedure xfree(p : pointer); cdecl; external;
 | 
			
		||||
 function  find_pc_line(i:CORE_ADDR;l:longint):symtab_and_line;cdecl;external;
 | 
			
		||||
 function  find_pc_function(i:CORE_ADDR):psymbol;cdecl;external;
 | 
			
		||||
@@ -2406,11 +2541,15 @@
 | 
			
		||||
     QueryHook:=0
 | 
			
		||||
   else
 | 
			
		||||
     begin
 | 
			
		||||
-      if curr_gdb^.reset_command and (pos('Kill',question)>0) then
 | 
			
		||||
+      if curr_gdb^.reset_command and ((pos('Kill',question)>0) or
 | 
			
		||||
+         (pos('Discard symbol table',question)>0)) then
 | 
			
		||||
         QueryHook:=1
 | 
			
		||||
       else if pos('%',question)>0 then
 | 
			
		||||
         begin
 | 
			
		||||
-          local:=xstrvprintf(question,arg);
 | 
			
		||||
+          xvasprintf(@local,question,arg);
 | 
			
		||||
+          { xvasprintf can failed, in that case local is set to nil }
 | 
			
		||||
+          if not assigned(local) then
 | 
			
		||||
+            local:=question;
 | 
			
		||||
           QueryHook:=curr_gdb^.Query(local, nil);
 | 
			
		||||
           xfree(local);
 | 
			
		||||
         end
 | 
			
		||||
@@ -2451,7 +2590,12 @@
 | 
			
		||||
      last_breakpoint_number:=b.number;
 | 
			
		||||
      { function breakpoints have zero as file and as line !!
 | 
			
		||||
        but they are valid !! }
 | 
			
		||||
+{$ifndef GDB_USES_BP_OPS}
 | 
			
		||||
      invalid_breakpoint_line:=(b.line_number<>sym.line) and (b.line_number<>0);
 | 
			
		||||
+{$else GDB_USES_BP_OPS}
 | 
			
		||||
+     invalid_breakpoint_line:=(b.loc=nil) or
 | 
			
		||||
+       ((b.loc^.line_number<>sym.line) and (b.loc^.line_number<>0));
 | 
			
		||||
+{$endif GDB_USES_BP_OPS}
 | 
			
		||||
 {$ifdef GDB_USES_BP_LOCATION}
 | 
			
		||||
      if assigned (b.loc) then
 | 
			
		||||
        last_breakpoint_address:=b.loc^.address
 | 
			
		||||
@@ -2471,7 +2615,11 @@
 | 
			
		||||
 {$ifdef GDB_HAS_OBSERVER_NOTIFY_BREAKPOINT_CREATED}
 | 
			
		||||
 
 | 
			
		||||
 type
 | 
			
		||||
+{$ifdef GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
+  breakpoint_created_function_type = procedure (bpp : pbreakpoint); cdecl;
 | 
			
		||||
+{$else not GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
   breakpoint_created_function_type = procedure (bpnum : longint); cdecl;
 | 
			
		||||
+{$endif not GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
   pobserver = pointer;
 | 
			
		||||
 var
 | 
			
		||||
   breakpoint_created_observer : pobserver = nil;
 | 
			
		||||
@@ -2479,8 +2627,14 @@
 | 
			
		||||
 function observer_attach_breakpoint_created(create_func : breakpoint_created_function_type) : pobserver;cdecl;external;
 | 
			
		||||
 procedure observer_detach_breakpoint_created(pob : pobserver);cdecl;external;
 | 
			
		||||
 
 | 
			
		||||
-var breakpoint_chain : pbreakpoint ;cvar;external;
 | 
			
		||||
 
 | 
			
		||||
+{$ifdef GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
+procedure notify_breakpoint_created(bpp : pbreakpoint); cdecl;
 | 
			
		||||
+begin
 | 
			
		||||
+  CreateBreakpointHook(bpp^);
 | 
			
		||||
+end;
 | 
			
		||||
+{$else not GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
+var breakpoint_chain : pbreakpoint ;cvar;external;
 | 
			
		||||
 
 | 
			
		||||
 procedure notify_breakpoint_created(bpnum : longint);cdecl;
 | 
			
		||||
 var
 | 
			
		||||
@@ -2498,8 +2652,16 @@
 | 
			
		||||
         pb:=pb^.next;
 | 
			
		||||
     end;
 | 
			
		||||
 end;
 | 
			
		||||
+{$endif not GDB_NOTIFY_BREAKPOINT_ARG_IS_BREAKPOINT_PTR}
 | 
			
		||||
 {$endif def GDB_HAS_OBSERVER_NOTIFY_BREAKPOINT_CREATED}
 | 
			
		||||
 
 | 
			
		||||
+{ Avoid loading of main.o object by providing a
 | 
			
		||||
+  stripped down version of relocate_gdb_directory function }
 | 
			
		||||
+function relocate_gdb_directory(path : pchar) : pchar; cdecl; public;
 | 
			
		||||
+begin
 | 
			
		||||
+  relocate_gdb_directory:=path;
 | 
			
		||||
+end;
 | 
			
		||||
+
 | 
			
		||||
 {*****************************************************************************
 | 
			
		||||
                                  tgdbinterface
 | 
			
		||||
 *****************************************************************************}
 | 
			
		||||
@@ -2528,7 +2690,7 @@
 | 
			
		||||
   gdb_command('set print object on');
 | 
			
		||||
   gdb_command('set print null-stop');
 | 
			
		||||
   {$ifdef USE_MINGW_GDB}  // maybe this also should be done for newer cygwin gdbs.
 | 
			
		||||
-  gdb_command('set confirm off');
 | 
			
		||||
+  //gdb_command('set confirm off');
 | 
			
		||||
   {$endif}
 | 
			
		||||
 end;
 | 
			
		||||
 
 | 
			
		||||
@@ -2609,9 +2771,9 @@
 | 
			
		||||
 var
 | 
			
		||||
    top_level_val : longint;
 | 
			
		||||
 
 | 
			
		||||
-function catch_errors(func : pointer; command : pchar; from_tty,mask : longint) : longint;cdecl;external;
 | 
			
		||||
+function catch_command_errors(func : pointer; command : pchar; from_tty,mask : longint) : longint;cdecl;external;
 | 
			
		||||
 
 | 
			
		||||
-function gdbint_execute_command(command : pchar; from_tty,mask : longint) : longint;cdecl;
 | 
			
		||||
+function gdbint_execute_command(command : pchar; from_tty : longint) : longint;cdecl;
 | 
			
		||||
 begin
 | 
			
		||||
   gdbint_execute_command:=1;
 | 
			
		||||
   execute_command(command,from_tty);
 | 
			
		||||
@@ -2658,6 +2820,8 @@
 | 
			
		||||
 begin
 | 
			
		||||
 {$ifdef cpui386}
 | 
			
		||||
   MaskAllFPUExceptions := control or MaskAllExceptions;
 | 
			
		||||
+{$else}
 | 
			
		||||
+  MaskAllFPUExceptions:=0;
 | 
			
		||||
 {$endif}
 | 
			
		||||
 end;
 | 
			
		||||
 
 | 
			
		||||
@@ -2716,7 +2880,8 @@
 | 
			
		||||
    begin
 | 
			
		||||
      quit_return:=error_return;
 | 
			
		||||
      mask:=longint($ffffffff);
 | 
			
		||||
-     catch_errors(@gdbint_execute_command,@command,0,mask);
 | 
			
		||||
+     catch_command_errors(@gdbint_execute_command,@command,
 | 
			
		||||
+       1,mask);
 | 
			
		||||
 {$ifdef go32v2}
 | 
			
		||||
      reload_fs;
 | 
			
		||||
 {$endif go32v2}
 | 
			
		||||
@@ -2973,11 +3138,43 @@
 | 
			
		||||
   c_environ : ppchar;external name '_environ';
 | 
			
		||||
   c_argc : longint;external name '___crt0_argc';
 | 
			
		||||
   c_argv : ppchar;external name '___crt0_argv';
 | 
			
		||||
+
 | 
			
		||||
+  procedure ReallocateEnvironUsingCMalloc;
 | 
			
		||||
+
 | 
			
		||||
+  var
 | 
			
		||||
+    neededsize , count : longint;
 | 
			
		||||
+    penv : pchar;
 | 
			
		||||
+    newenv : ppchar;
 | 
			
		||||
+  begin
 | 
			
		||||
+    if not assigned(c_environ) then
 | 
			
		||||
+      neededsize:=0
 | 
			
		||||
+    else
 | 
			
		||||
+      begin
 | 
			
		||||
+        count:=0;
 | 
			
		||||
+        penv:=c_environ^;
 | 
			
		||||
+        while assigned(penv) do
 | 
			
		||||
+          begin
 | 
			
		||||
+            inc(count);
 | 
			
		||||
+            inc(penv,sizeof(pchar));
 | 
			
		||||
+          end;
 | 
			
		||||
+        neededsize:=count*sizeof(pchar);
 | 
			
		||||
+      end;
 | 
			
		||||
+    newenv:=malloc(neededsize);
 | 
			
		||||
+    system.move(c_environ,newenv,neededsize);
 | 
			
		||||
+    c_environ:=newenv;
 | 
			
		||||
+  end;
 | 
			
		||||
+
 | 
			
		||||
 {$endif def go32v2}
 | 
			
		||||
 var
 | 
			
		||||
   current_directory : pchar; cvar; external;
 | 
			
		||||
   gdb_dirbuf : array[0..0] of char; cvar; external;
 | 
			
		||||
   CurrentDir : AnsiString;
 | 
			
		||||
+{$ifdef GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+  type
 | 
			
		||||
+     interpreter_struct_p = pointer; { to opaque type }
 | 
			
		||||
+  function interp_lookup (name : pchar) : interpreter_struct_p;cdecl; external;
 | 
			
		||||
+  function interp_set (interp : interpreter_struct_p) : longbool;cdecl; external;
 | 
			
		||||
+{$endif GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
 const
 | 
			
		||||
   DIRBUF_SIZE = 1024;
 | 
			
		||||
 
 | 
			
		||||
@@ -2986,13 +3183,28 @@
 | 
			
		||||
 var
 | 
			
		||||
   OldSigInt : SignalHandler;
 | 
			
		||||
 {$endif supportexceptions}
 | 
			
		||||
+{$ifdef GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+var
 | 
			
		||||
+  dummy_file : pui_file;
 | 
			
		||||
+{$endif GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+
 | 
			
		||||
 {$ifdef GDB_INIT_HAS_ARGV0}
 | 
			
		||||
 var
 | 
			
		||||
   argv0 : pchar;
 | 
			
		||||
 {$endif not GDB_INIT_HAS_ARGV0}
 | 
			
		||||
+{$ifdef GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+var
 | 
			
		||||
+  interp : interpreter_struct_p;
 | 
			
		||||
+{$endif GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+var
 | 
			
		||||
+ save_gdb_stdin,
 | 
			
		||||
+ save_gdb_stdout,
 | 
			
		||||
+ save_gdb_stderr : pui_file;
 | 
			
		||||
 begin
 | 
			
		||||
 {$ifdef go32v2}
 | 
			
		||||
-  c_environ:=system.envp;
 | 
			
		||||
+  { c_environ:=system.envp; }
 | 
			
		||||
+  { DJGPP libC presupposes the c_enivron was malloc'ated }
 | 
			
		||||
+  ReallocateEnvironUsingCMalloc;
 | 
			
		||||
   c_argc:=system.argc;
 | 
			
		||||
   c_argv:=system.argv;
 | 
			
		||||
 {$endif def go32v2}
 | 
			
		||||
@@ -3012,8 +3224,25 @@
 | 
			
		||||
     ui_file_delete(gdb_stderr);
 | 
			
		||||
   if assigned(gdb_stdout) then
 | 
			
		||||
     ui_file_delete(gdb_stdout);
 | 
			
		||||
+{$ifdef GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+  if assigned(gdb_stdin) then
 | 
			
		||||
+    ui_file_delete(gdb_stdin);
 | 
			
		||||
+  gdb_stdin:=mem_fileopen;
 | 
			
		||||
+  save_gdb_stdin:=gdb_stdin;
 | 
			
		||||
+  dummy_file :=gdb_fopen('dummy.$$$','a');
 | 
			
		||||
+  {in captured_main code, this is simply
 | 
			
		||||
+   instream:=stdin; but stdin is a highly system dependent macro
 | 
			
		||||
+   so that we try to avoid it here }
 | 
			
		||||
+  if assigned(dummy_file) then
 | 
			
		||||
+    instream:=pstdio_file(dummy_file^.to_data)^._file
 | 
			
		||||
+  else
 | 
			
		||||
+    instream:=nil;
 | 
			
		||||
+{$endif GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+
 | 
			
		||||
   gdb_stderr:=mem_fileopen;
 | 
			
		||||
   gdb_stdout:=mem_fileopen;
 | 
			
		||||
+  save_gdb_stderr:=gdb_stderr;
 | 
			
		||||
+  save_gdb_stdout:=gdb_stdout;
 | 
			
		||||
   gdb_stdlog:=gdb_stderr;
 | 
			
		||||
   gdb_stdtarg:=gdb_stderr;
 | 
			
		||||
   set_ui_file_write(gdb_stdout,@gdbint_ui_file_write);
 | 
			
		||||
@@ -3022,7 +3251,9 @@
 | 
			
		||||
   error_init;
 | 
			
		||||
 {$endif GDB_NEEDS_NO_ERROR_INIT}
 | 
			
		||||
 {$ifdef GDB_V6}
 | 
			
		||||
-//  gdb_stdtargin := gdb_stdin;
 | 
			
		||||
+{$ifdef GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
+  gdb_stdtargin := gdb_stdin;
 | 
			
		||||
+{$endif GDB_NEEDS_SET_INSTREAM}
 | 
			
		||||
   gdb_stdtargerr := gdb_stderr;
 | 
			
		||||
 {$endif}
 | 
			
		||||
   GetDir(0, CurrentDir);
 | 
			
		||||
@@ -3034,8 +3265,10 @@
 | 
			
		||||
   next_exit:=exitproc;
 | 
			
		||||
   exitproc:=@DoneLibGDB;
 | 
			
		||||
 {$ifdef GDB_V6}
 | 
			
		||||
+{$ifndef GDB_NO_UIOUT}
 | 
			
		||||
   uiout := cli_out_new (gdb_stdout);
 | 
			
		||||
-{$endif}
 | 
			
		||||
+{$endif not GDB_NO_UIOUT}
 | 
			
		||||
+{$endif GDB_V6}
 | 
			
		||||
 {$ifdef GDB_INIT_HAS_ARGV0}
 | 
			
		||||
   getmem(argv0,length(paramstr(0))+1);
 | 
			
		||||
   strpcopy(argv0,paramstr(0));
 | 
			
		||||
@@ -3044,6 +3277,31 @@
 | 
			
		||||
 {$else not GDB_INIT_HAS_ARGV0}
 | 
			
		||||
   gdb_init;
 | 
			
		||||
 {$endif not GDB_INIT_HAS_ARGV0}
 | 
			
		||||
+{$ifdef GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
+  { interpreter can only be set after all files are
 | 
			
		||||
+    initialized, which is done in gdb_init function. }
 | 
			
		||||
+  interp := interp_lookup ('console');
 | 
			
		||||
+  interp_set (interp);
 | 
			
		||||
+
 | 
			
		||||
+  { We need to re-set gdb_stdXX ui_files }
 | 
			
		||||
+  if assigned(gdb_stderr) then
 | 
			
		||||
+    ui_file_delete(gdb_stderr);
 | 
			
		||||
+  if assigned(gdb_stdout) then
 | 
			
		||||
+    ui_file_delete(gdb_stdout);
 | 
			
		||||
+  if assigned(gdb_stdin) then
 | 
			
		||||
+    ui_file_delete(gdb_stdin);
 | 
			
		||||
+  gdb_stdin:=save_gdb_stdin;
 | 
			
		||||
+  gdb_stderr:=save_gdb_stderr;
 | 
			
		||||
+  gdb_stdout:=save_gdb_stdout;
 | 
			
		||||
+  gdb_stdlog:=gdb_stderr;
 | 
			
		||||
+  gdb_stdtarg:=gdb_stderr;
 | 
			
		||||
+  set_ui_file_write(gdb_stdout,@gdbint_ui_file_write);
 | 
			
		||||
+  set_ui_file_write(gdb_stderr,@gdbint_ui_file_write);
 | 
			
		||||
+{$ifdef GDB_NO_UIOUT}
 | 
			
		||||
+  cli_uiout := cli_out_new (gdb_stdout);
 | 
			
		||||
+  current_uiout:=cli_uiout;
 | 
			
		||||
+{$endif GDB_NO_UIOUT}
 | 
			
		||||
+{$endif GDB_NEEDS_INTERPRETER_SETUP}
 | 
			
		||||
 {$ifdef supportexceptions}
 | 
			
		||||
   {$ifdef unix}
 | 
			
		||||
     fpsignal(SIGINT,OldSigInt);
 | 
			
		||||
@@ -3069,14 +3327,34 @@
 | 
			
		||||
 end;
 | 
			
		||||
 
 | 
			
		||||
 {$ifdef GDB_HAS_SYSROOT}
 | 
			
		||||
-var gdb_sysroot  : pchar; cvar;public;
 | 
			
		||||
+  { Here we declare as cvar;public; a bunch of global
 | 
			
		||||
+    variables that are defined in main.c source.
 | 
			
		||||
+    We must not load main.o otherwise, we will get
 | 
			
		||||
+    into multiply defined symbols troubles. }
 | 
			
		||||
+var 
 | 
			
		||||
+    gdb_sysrootc : char;
 | 
			
		||||
+    { used locally only to provide a pchar pointing to '\0' }
 | 
			
		||||
+    gdb_sysroot  : pchar; cvar;public; 
 | 
			
		||||
+    { gdb_sysroot global variable is declared in defs.h and
 | 
			
		||||
+      instanciated in main.c since version 6.0 }
 | 
			
		||||
     gdb_datadir  : pchar; cvar;public;
 | 
			
		||||
+    { gdb_datadir global variable is declared in defs.h and
 | 
			
		||||
+      instanciated in main.c since version 7.0 }
 | 
			
		||||
     python_libdir : pchar;cvar;public;
 | 
			
		||||
-    gdb_sysrootc : char;
 | 
			
		||||
+    { python_libdir global variable is declared in defs.h and instanciated
 | 
			
		||||
+      in main.c since version 7.2 }
 | 
			
		||||
     return_child_result : longbool;cvar;public;
 | 
			
		||||
+    { return_chlid_result global variable is declared in main.h and
 | 
			
		||||
+      instanciated in main.c since version 6.4 }
 | 
			
		||||
     return_child_result_value : longint;cvar;public;
 | 
			
		||||
+    { return_child_result_value global variable is declared in main.h and
 | 
			
		||||
+      instanciated in main.c since version 6.4 with a startup value of -1 }
 | 
			
		||||
     batch_silent : longbool;cvar;public;
 | 
			
		||||
+    { batch_silent global variable is declared in main.h since 7.0, but
 | 
			
		||||
+      instanciated in main.c since version 6.4 }
 | 
			
		||||
     batch_flag : longbool;cvar;public;
 | 
			
		||||
+    { batch_flag global variable is declared in main.h and
 | 
			
		||||
+      instanciated in main.c since version 7.2 }
 | 
			
		||||
 {$endif}
 | 
			
		||||
 {$ifdef GDB_HAS_DEBUG_FILE_DIRECTORY}
 | 
			
		||||
 var
 | 
			
		||||
@@ -3086,6 +3364,7 @@
 | 
			
		||||
 begin
 | 
			
		||||
 {$ifdef GDB_HAS_SYSROOT}
 | 
			
		||||
   gdb_sysrootc := #0;
 | 
			
		||||
+  return_child_result_value := -1;
 | 
			
		||||
   gdb_sysroot := @gdb_sysrootc;
 | 
			
		||||
   gdb_datadir := @gdb_sysrootc;
 | 
			
		||||
   python_libdir := @gdb_sysrootc;
 | 
			
		||||
							
								
								
									
										1
									
								
								talimatname/genel/fpc3/fpc3.kos-kur
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								talimatname/genel/fpc3/fpc3.kos-kur
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
mps sil fpc
 | 
			
		||||
							
								
								
									
										47
									
								
								talimatname/genel/fpc3/talimat
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								talimatname/genel/fpc3/talimat
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
# Description: Özgür pascal derleyicisi
 | 
			
		||||
# URL: http://www.freepascal.org/
 | 
			
		||||
# Packager: milisarge
 | 
			
		||||
# Depends on: fpc
 | 
			
		||||
 | 
			
		||||
name=fpc3
 | 
			
		||||
version=3.0.2
 | 
			
		||||
release=1
 | 
			
		||||
source=(ftp://ftp.freepascal.org/pub/fpc/dist/$version/source/fpcbuild-$version.tar.gz
 | 
			
		||||
	https://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.xz
 | 
			
		||||
	fpc-gdb.patch)
 | 
			
		||||
build() {
 | 
			
		||||
	cd "$SRC"/gdb-7.10
 | 
			
		||||
	./configure --prefix=/usr --disable-nls --without-python --disable-werror --disable-tui
 | 
			
		||||
	make
 | 
			
		||||
	make -C gdb libgdb.a
 | 
			
		||||
	cp libdecnumber/libdecnumber.a gdb/
 | 
			
		||||
 | 
			
		||||
	cd "$SRC"/fpcbuild-$version
 | 
			
		||||
	#patch -p1 <"$SRC"/fpc-gdb.patch
 | 
			
		||||
	export GDBLIBDIR="$SRC"/gdb-7.10/gdb
 | 
			
		||||
	export LIBGDBFILE=$GDBLIBDIR/libgdb.a
 | 
			
		||||
	pushd fpcsrc/compiler
 | 
			
		||||
	fpcmake -Tall
 | 
			
		||||
	popd
 | 
			
		||||
	make build NOGDB=1
 | 
			
		||||
	
 | 
			
		||||
	 export HOME="$SRC"
 | 
			
		||||
 | 
			
		||||
	make -j1 PREFIX="$PKG"/usr install
 | 
			
		||||
 | 
			
		||||
	export PATH="$PKG"/usr/bin:$PATH
 | 
			
		||||
 | 
			
		||||
	install -Dm0644 fpcsrc/rtl/COPYING.FPC "$PKG"/usr/share/licenses/${name}/COPYING.FPC
 | 
			
		||||
 | 
			
		||||
	ln -s /usr/lib/fpc/${version}/ppcx64 "$PKG"/usr/bin/
 | 
			
		||||
 | 
			
		||||
	mkdir -p "$PKG"/etc
 | 
			
		||||
	"$PKG"/usr/lib/fpc/${version}/samplecfg "$PKG"/usr/lib/fpc/${version} "$PKG"/etc
 | 
			
		||||
 | 
			
		||||
	# use -fPIC by default
 | 
			
		||||
	echo -e "#ifdef cpux86_64\n# for x86_64 use -fPIC by default\n-Cg\n#endif" >> "$PKG/etc/fpc.cfg"
 | 
			
		||||
 | 
			
		||||
	mv "$PKG"/usr/man "$PKG"/usr/share/
 | 
			
		||||
 | 
			
		||||
	find "$PKG"/etc/ -type f -exec sed -i "s|"$PKG"||g" {} \;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue