Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
10 years ago[mc] Handle DW_AT_start_scope (for constants)
Gabriel Corona [Tue, 25 Feb 2014 09:16:28 +0000 (10:16 +0100)]
[mc] Handle DW_AT_start_scope (for constants)

10 years ago[mc] Handle DW_TAG_namespace (C++)
Gabriel Corona [Tue, 25 Feb 2014 08:55:45 +0000 (09:55 +0100)]
[mc] Handle DW_TAG_namespace (C++)

10 years ago[mc] Basic namespace support (for types)
Gabriel Corona [Mon, 24 Feb 2014 14:11:40 +0000 (15:11 +0100)]
[mc] Basic namespace support (for types)

10 years ago[mc] Do not use linkage_name as a name
Gabriel Corona [Mon, 24 Feb 2014 13:00:00 +0000 (14:00 +0100)]
[mc] Do not use linkage_name as a name

If needed, it would be better to use a separate field.

10 years ago[mc] Add MC_dwarf_tag_classify()
Gabriel Corona [Mon, 24 Feb 2014 12:54:45 +0000 (13:54 +0100)]
[mc] Add MC_dwarf_tag_classify()

Add MC_dwarf_tag_classify(tag) which regroupe different similar
DW_TAG_* items classes. This is in preparation for upcoming
modifications of the DIE handling code.

10 years ago[mc] Do not try to handle scopes inside a subprogram
Gabriel Corona [Mon, 24 Feb 2014 12:22:10 +0000 (13:22 +0100)]
[mc] Do not try to handle scopes inside a subprogram

The variables of a subprogram scopes were merged in the information
about subprogram without any information on its range of validity (for
which range of IP the variable is valid).

As this handling of scopes was broken, this commit ignore the scopes within a
subprogram.

We need to:

  * either add frame_t as child of frame_t to represent scope;

  * or attach validity information on each variables

    This one is needed anyway in order to handle DW_AT_start_scope.

  * or both.

    Use frame_t for DW_TAG_inlined_subprogram and validity range for
    real scope.

-    if(dwarf_offdie(dwarf, offset+length, &die)!=NULL) {
-      MC_dwarf_handle_die(info, &die, &die, NULL);
+    if(dwarf_offdie(dwarf, offset+length, &unit_die)!=NULL) {
+      Dwarf_Die child;
+      int res;
+      for (res=dwarf_child(&unit_die, &child); res==0; res=dwarf_siblingof(&child,&child)) {
+        MC_dwarf_handle_die(info, &child, &unit_die, NULL);
+      }
     }
     offset = next_offset;
   }

10 years ago[mc] Use dynar instead of dict for storing functions
Gabriel Corona [Mon, 24 Feb 2014 11:03:24 +0000 (12:03 +0100)]
[mc] Use dynar instead of dict for storing functions

Multiple instances of the same function with the same name can be
found in a given program:

  * different local static functions;
  * same inline functions;
  * overloads (C++);
  * ...

10 years ago[mc] Move MC_ignore_local_variable and MC_ignore_global_variable to initialisation...
Gabriel Corona [Mon, 24 Feb 2014 09:51:16 +0000 (10:51 +0100)]
[mc] Move MC_ignore_local_variable and MC_ignore_global_variable to initialisation code

10 years ago[mc] Add missing DW_FORM_data1 (enable C++ support)
Gabriel Corona [Mon, 24 Feb 2014 09:35:01 +0000 (10:35 +0100)]
[mc] Add missing DW_FORM_data1 (enable C++ support)

For some reason DW_FORM_data1 was only used in C++ compile units.

10 years ago[mc] Avoid resolving TLS over and over again
Gabriel Corona [Fri, 21 Feb 2014 14:21:41 +0000 (15:21 +0100)]
[mc] Avoid resolving TLS over and over again

10 years ago[mc] Merge add_compared_pointers and already_compared_pointers into add_compared_pointers
Gabriel Corona [Fri, 21 Feb 2014 09:04:09 +0000 (10:04 +0100)]
[mc] Merge add_compared_pointers and already_compared_pointers into add_compared_pointers

Avoid doing the binary search twice.

10 years ago[mc] Avoid (slow) type lookups by name or ID (xbt_dict_get_or_null)
Gabriel Corona [Thu, 20 Feb 2014 11:26:24 +0000 (12:26 +0100)]
[mc] Avoid (slow) type lookups by name or ID (xbt_dict_get_or_null)

10 years ago[mc] Move mc_find_frame_base in mc_dwarf.c where it belongs
Gabriel Corona [Thu, 20 Feb 2014 10:56:22 +0000 (11:56 +0100)]
[mc] Move mc_find_frame_base in mc_dwarf.c where it belongs

10 years ago[mc] Use resolved addresses in entry.low_pc and entry.high_pc
Gabriel Corona [Thu, 20 Feb 2014 10:54:46 +0000 (11:54 +0100)]
[mc] Use resolved addresses in entry.low_pc and entry.high_pc

10 years ago[mc] Use resolved addresses in frame->low_pc and frame->high_pc
Gabriel Corona [Thu, 20 Feb 2014 10:41:03 +0000 (11:41 +0100)]
[mc] Use resolved addresses in frame->low_pc and frame->high_pc

10 years ago[mc] Do not waste time calling libunwind get_proc_name in the hot spots
Gabriel Corona [Tue, 18 Feb 2014 10:38:14 +0000 (11:38 +0100)]
[mc] Do not waste time calling libunwind get_proc_name in the hot spots

In typical executions, nearly 50% of the time was spent in libunwind
get_proc_name.

The algorithm to find the function for a given IP (instruction
pointer) was:

  (proc_name, offset) = get_proc_name(ip) // Slow!
  dwarf_ip = ip - offset
  function = functions_by_name[proc_name]

We added a structure mapping IP ranges to functions and the algorithm
is now:

  function = functions_by_ip[ip]

Instead of relying on libunwind, we use the DWARF information to find
the corresponding DWARF TAG_subprogram DIEs directly.

The secution time on some MPICH tests is nearly halved.

Notes:

 * It was necessary to disable the support for inlined_subprograms
   which was broken anyway: the inlined_subprogram entries should be
   stored as children of their parent subprogram (as a block). We need
   to add support for scope blocks inside a suprogram to handle this
   correctly.

 * Currently the translation between process virtual addresses and
   DWARF virtual addresses is handled in many different places. We
   should change this to process it only when parsing the DWARF DIEs
   and be done with it.

10 years ago[mc] Avoid parsing /proc/self/maps if possible (continued)
Gabriel Corona [Tue, 18 Feb 2014 10:40:32 +0000 (11:40 +0100)]
[mc] Avoid parsing /proc/self/maps if possible (continued)

10 years ago[mc] Fix get_object_info
Gabriel Corona [Mon, 17 Feb 2014 14:17:23 +0000 (15:17 +0100)]
[mc] Fix get_object_info

Some part of the RW segment was not included (the .bss).

10 years ago[mc] Avoid parsing /proc/self/maps if possible
Gabriel Corona [Mon, 17 Feb 2014 13:27:57 +0000 (14:27 +0100)]
[mc] Avoid parsing /proc/self/maps if possible

10 years ago[mc] Doxygen mc_dpor.c (and some mc_liveness.c)
Gabriel Corona [Fri, 14 Feb 2014 12:43:05 +0000 (13:43 +0100)]
[mc] Doxygen mc_dpor.c (and some mc_liveness.c)

10 years ago[mc] Disable MC_DEBUG (enabled by mistake)
Gabriel Corona [Fri, 14 Feb 2014 10:59:01 +0000 (11:59 +0100)]
[mc] Disable MC_DEBUG (enabled by mistake)

10 years ago[mc] Make usage of state hash a runtime parameter (instead of compile-time)
Gabriel Corona [Tue, 11 Feb 2014 12:38:04 +0000 (13:38 +0100)]
[mc] Make usage of state hash a runtime parameter (instead of compile-time)

"off" by default.

10 years ago[mc] Code for evaluation of the impact of the hash
Gabriel Corona [Mon, 10 Feb 2014 14:02:13 +0000 (15:02 +0100)]
[mc] Code for evaluation of the impact of the hash

Generate log for evaluating the result of the test:
* true positive;
* true negative;
* false negative (there must not be any of them);
* false positive (should be minimised).

10 years ago[mc] Cache stack unwindinwg
Gabriel Corona [Mon, 10 Feb 2014 12:39:09 +0000 (13:39 +0100)]
[mc] Cache stack unwindinwg

Too much time is spent in libunwind.

10 years ago[mc] Fix broken type lookup code
Gabriel Corona [Mon, 10 Feb 2014 10:49:07 +0000 (11:49 +0100)]
[mc] Fix broken type lookup code

10 years agoMerge branch 'mc' into mc-perf
Gabriel Corona [Mon, 10 Feb 2014 10:15:29 +0000 (11:15 +0100)]
Merge branch 'mc' into mc-perf

10 years ago[mc] Remove useless code (get SP register)
Gabriel Corona [Mon, 10 Feb 2014 10:13:37 +0000 (11:13 +0100)]
[mc] Remove useless code (get SP register)

10 years ago[mc] Use optimized local implementation of libuwind (UNW_LOCAL_ONLY)
Gabriel Corona [Mon, 10 Feb 2014 10:11:09 +0000 (11:11 +0100)]
[mc] Use optimized local implementation of libuwind (UNW_LOCAL_ONLY)

10 years ago[mc] Restore old behaviour when comparing pointers leading to different segments
Gabriel Corona [Mon, 10 Feb 2014 09:31:50 +0000 (10:31 +0100)]
[mc] Restore old behaviour when comparing pointers leading to different segments

Do not terminate the program but assume the state is different.

10 years ago[mc] Fix sefault where a variable has no name
Gabriel Corona [Fri, 7 Feb 2014 14:44:15 +0000 (15:44 +0100)]
[mc] Fix sefault where a variable has no name

This happen when optimisation is enabled.

As the current code needs a name for the variable, we generate a fake
one. We might want to remove this assumption.

10 years agoMerge branch mc into mc-perf
Gabriel Corona [Fri, 7 Feb 2014 12:16:09 +0000 (13:16 +0100)]
Merge branch mc into mc-perf

10 years ago[mc] Split address/location in dw_variable_t (which were in a union)
Gabriel Corona [Fri, 7 Feb 2014 11:45:28 +0000 (12:45 +0100)]
[mc] Split address/location in dw_variable_t (which were in a union)

10 years ago[mc] Fix segfaults when type->name==NULL
Gabriel Corona [Fri, 7 Feb 2014 10:56:08 +0000 (11:56 +0100)]
[mc] Fix segfaults when type->name==NULL

10 years ago[mc] Disable communication pattern code (segfault)
Gabriel Corona [Fri, 7 Feb 2014 10:55:50 +0000 (11:55 +0100)]
[mc] Disable communication pattern code (segfault)

10 years ago[mc] Remove dead code for ignoring variables
Gabriel Corona [Fri, 7 Feb 2014 08:50:09 +0000 (09:50 +0100)]
[mc] Remove dead code for ignoring variables

10 years ago[mc] Remove old hash code
Gabriel Corona [Fri, 7 Feb 2014 08:25:30 +0000 (09:25 +0100)]
[mc] Remove old hash code

10 years ago[mc] Avoid useless zero-initialisations in the hot spot
Gabriel Corona [Tue, 4 Feb 2014 13:33:57 +0000 (14:33 +0100)]
[mc] Avoid useless zero-initialisations in the hot spot

10 years ago[mc] Avoid type lookups and calls to get_type_description()
Gabriel Corona [Tue, 4 Feb 2014 12:34:53 +0000 (13:34 +0100)]
[mc] Avoid type lookups and calls to get_type_description()

Faster and cache-friendlier.

10 years ago[mc] Pass mc_object_info_t arguiments in many places intead of info->types
Gabriel Corona [Tue, 4 Feb 2014 12:00:52 +0000 (13:00 +0100)]
[mc] Pass mc_object_info_t arguiments in many places intead of info->types

Preparation to remove get_type_description() calls which are very
inneficient.

10 years ago[mc] Preprocess type lookup
Gabriel Corona [Tue, 4 Feb 2014 10:18:38 +0000 (11:18 +0100)]
[mc] Preprocess type lookup

Avoid looking up the types in the dictionnaries.

10 years ago[mc] Compute a single hash (64 bits) of the current state
Gabriel Corona [Tue, 21 Jan 2014 11:25:30 +0000 (12:25 +0100)]
[mc] Compute a single hash (64 bits) of the current state

This is an attempt to speedup state comparison by using
a very fast first pass.

Compared to previous attempt:

* use a simple 64 bits djb2 hash instead of SHA-1;
* add has much info as possible into the hash;
* do not add anything suspicious;
* it could be used for efficient state comparison
  * index for hashtable,
  * cache-friendly data-structure.

10 years ago[mc] Remove code for finding an array byte size
Gabriel Corona [Tue, 4 Feb 2014 09:18:59 +0000 (10:18 +0100)]
[mc] Remove code for finding an array byte size

This was useless as it was already handled by libdw dwarf_aggregate_size.

10 years ago[mc] Fix broken type in compare_heap_area_with_type
Gabriel Corona [Mon, 3 Feb 2014 11:09:25 +0000 (12:09 +0100)]
[mc] Fix broken type in compare_heap_area_with_type

10 years ago[mc] Enforce some assumption about the relationship of the compared areas in compare_...
Gabriel Corona [Mon, 20 Jan 2014 14:23:54 +0000 (15:23 +0100)]
[mc] Enforce some assumption about the relationship of the compared areas in compare_areas_with_type

Compare_areas_with_type expects that either :

 * both area are in the heap;
 * both area are in the current segment R/W segment.

Otherwise, it falls back to comparing pointers.

Changes to code to fail if both areas are not in the same segment

10 years ago[mc] Add comments to compare_areas_with_type
Gabriel Corona [Mon, 20 Jan 2014 13:43:31 +0000 (14:43 +0100)]
[mc] Add comments to compare_areas_with_type

10 years ago[mc] Do not ignore DW_TAG_const_type
Gabriel Corona [Mon, 20 Jan 2014 12:09:22 +0000 (13:09 +0100)]
[mc] Do not ignore DW_TAG_const_type

10 years ago[mc] In compare_global_variables only compare values in the R/W segment
Gabriel Corona [Mon, 20 Jan 2014 12:06:07 +0000 (13:06 +0100)]
[mc] In compare_global_variables only compare values in the R/W segment

The algorithme is only relevant if the variable is in the R/W segment
otherwise the resulting pointer will be broken and might result in a
SIGSEV.

This happen if we try to compare a pointer on the .rodata (such as
__FUNCTION__).

Values are supposed to be constant and we do not expect to find
pointers to something which is not reachable by the global variables.

10 years ago[mc] DRY in snapshot_compare
Gabriel Corona [Mon, 20 Jan 2014 10:21:43 +0000 (11:21 +0100)]
[mc] DRY in snapshot_compare

10 years ago[mc] Have a more complete/accurate view of an given object mapping in memory
Gabriel Corona [Mon, 20 Jan 2014 09:19:38 +0000 (10:19 +0100)]
[mc] Have a more complete/accurate view of an given object mapping in memory

* Change the terminology (exec/rw instead of text/data)
  as we do not have information about the sections but only
  about the segments.

 * Add information about the read only segment.

10 years ago[mc] Fix element count computation for a givena array dimension
Gabriel Corona [Fri, 31 Jan 2014 10:58:07 +0000 (11:58 +0100)]
[mc] Fix element count computation for a givena array dimension

element_count = upper_bound - lower_bound + 1

and not

element_count = upper_bound - lower_bound

10 years ago[mc] Fix handling of location
Gabriel Corona [Wed, 29 Jan 2014 10:35:04 +0000 (11:35 +0100)]
[mc] Fix handling of location

The handling of member offsets was broken (DW_AT_data_member_location)
and was always 0.

Add support for the class of a given attribute value.

10 years ago[mc] Comment logging in order to fix the unit tests
Gabriel Corona [Mon, 20 Jan 2014 09:18:14 +0000 (10:18 +0100)]
[mc] Comment logging in order to fix the unit tests

10 years agoMerge remote-tracking branch 'origin/libdw2'
Marion Guthmuller [Fri, 17 Jan 2014 12:15:58 +0000 (13:15 +0100)]
Merge remote-tracking branch 'origin/libdw2'

10 years ago[mc] Add DW_TAG_formal_parameter as variables in the frames
Gabriel Corona [Fri, 17 Jan 2014 11:12:05 +0000 (12:12 +0100)]
[mc] Add DW_TAG_formal_parameter as variables in the frames

10 years ago[mc] Use literal values in DWARF constant to name mappings
Gabriel Corona [Fri, 17 Jan 2014 10:30:07 +0000 (11:30 +0100)]
[mc] Use literal values in DWARF constant to name mappings

10 years ago[mc] Cleanup mc_dwarf.c
Gabriel Corona [Thu, 16 Jan 2014 14:57:52 +0000 (15:57 +0100)]
[mc] Cleanup mc_dwarf.c

10 years ago[mc] Remove useless argument in MC_dwarf_at_location
Gabriel Corona [Fri, 17 Jan 2014 10:16:51 +0000 (11:16 +0100)]
[mc] Remove useless argument in MC_dwarf_at_location

10 years ago[mc] Add comments/doxygen
Gabriel Corona [Thu, 16 Jan 2014 14:50:21 +0000 (15:50 +0100)]
[mc] Add comments/doxygen

10 years ago[mc] Free memory for object_info
Gabriel Corona [Thu, 16 Jan 2014 14:14:00 +0000 (15:14 +0100)]
[mc] Free memory for object_info

10 years ago[mc] Remove objdump code
Gabriel Corona [Thu, 16 Jan 2014 12:08:00 +0000 (13:08 +0100)]
[mc] Remove objdump code

10 years ago[mc] Remove code for location of .plt and .got.plt
Gabriel Corona [Thu, 16 Jan 2014 11:58:06 +0000 (12:58 +0100)]
[mc] Remove code for location of .plt and .got.plt

This code was not used anyway. If necessary a new solution which do
not depend on objdump should be used.

10 years ago[mc] Use libdw for location list
Gabriel Corona [Thu, 16 Jan 2014 10:50:23 +0000 (11:50 +0100)]
[mc] Use libdw for location list

10 years ago[mc] Use libdw for functions and local variables
Gabriel Corona [Mon, 13 Jan 2014 10:56:17 +0000 (11:56 +0100)]
[mc] Use libdw for functions and local variables

10 years ago[mc] Use libdw for global variables
Gabriel Corona [Fri, 10 Jan 2014 13:40:22 +0000 (14:40 +0100)]
[mc] Use libdw for global variables

10 years ago[mc] Deduplicate address location resolution in MC_dwarf_resolve_location()
Gabriel Corona [Fri, 10 Jan 2014 14:42:51 +0000 (15:42 +0100)]
[mc] Deduplicate address location resolution in MC_dwarf_resolve_location()

10 years ago[mc] Remove MC_dwarf_tag_type()
Gabriel Corona [Fri, 10 Jan 2014 13:31:41 +0000 (14:31 +0100)]
[mc] Remove MC_dwarf_tag_type()

10 years ago[mc] Add dwarf_global field to dw_variable_t
Gabriel Corona [Fri, 10 Jan 2014 13:24:16 +0000 (14:24 +0100)]
[mc] Add dwarf_global field to dw_variable_t

It is a better (but not perfect) identifier for a entry.

10 years ago[mc] libdwarf integration for types
Gabriel Corona [Mon, 6 Jan 2014 10:21:02 +0000 (11:21 +0100)]
[mc] libdwarf integration for types

10 years ago[mc] Use DWARF constants for type tags
Gabriel Corona [Mon, 6 Jan 2014 11:20:56 +0000 (12:20 +0100)]
[mc] Use DWARF constants for type tags

10 years ago[mc] Link against libdw
Gabriel Corona [Mon, 23 Dec 2013 13:36:07 +0000 (14:36 +0100)]
[mc] Link against libdw

10 years ago[mc] Fix warnings
Gabriel Corona [Fri, 17 Jan 2014 09:20:06 +0000 (10:20 +0100)]
[mc] Fix warnings

10 years agomodel-checker : first steps for the study of MPI communications patterns
Marion Guthmuller [Thu, 16 Jan 2014 14:24:03 +0000 (15:24 +0100)]
model-checker : first steps for the study of MPI communications patterns

10 years ago[mc] Remove type DW_TAG_enumerator type (because it is not a type)
Gabriel Corona [Tue, 7 Jan 2014 09:33:11 +0000 (10:33 +0100)]
[mc] Remove type DW_TAG_enumerator type (because it is not a type)

10 years ago[mc] Split byte_size and element_count in mc_object_info_t
Gabriel Corona [Mon, 6 Jan 2014 14:01:45 +0000 (15:01 +0100)]
[mc] Split byte_size and element_count in mc_object_info_t

10 years ago[mc] Remove spurious return in MC_find_object_address
Gabriel Corona [Mon, 6 Jan 2014 09:35:52 +0000 (10:35 +0100)]
[mc] Remove spurious return in MC_find_object_address

10 years ago[mc] Add comments
Gabriel Corona [Thu, 9 Jan 2014 13:30:38 +0000 (14:30 +0100)]
[mc] Add comments

10 years ago[mc] Restore lightweight MC initialisation procedure
Gabriel Corona [Fri, 3 Jan 2014 11:02:17 +0000 (12:02 +0100)]
[mc] Restore lightweight MC initialisation procedure

10 years ago[mc] Cleanup mc_object_info_t code
Gabriel Corona [Thu, 2 Jan 2014 14:22:23 +0000 (15:22 +0100)]
[mc] Cleanup mc_object_info_t code

10 years ago[mv] Remove global {start,end}_{plt,got}_{libsimgrid,binary}
Gabriel Corona [Thu, 2 Jan 2014 13:57:46 +0000 (14:57 +0100)]
[mv] Remove global {start,end}_{plt,got}_{libsimgrid,binary}

10 years ago[mc] Add plt/got in mc_object_info_t
Gabriel Corona [Thu, 2 Jan 2014 12:57:16 +0000 (13:57 +0100)]
[mc] Add plt/got in mc_object_info_t

10 years ago[mc] Move start_text, start_data, start_bss into mc_object_info_t
Gabriel Corona [Tue, 24 Dec 2013 14:07:43 +0000 (15:07 +0100)]
[mc] Move start_text, start_data, start_bss into mc_object_info_t

10 years ago[mc] Include ELF file name in object_info_t
Gabriel Corona [Tue, 24 Dec 2013 13:25:34 +0000 (14:25 +0100)]
[mc] Include ELF file name in object_info_t

10 years ago[mc] Remvove mc_{global_variables,local_variables,variables_type}_{libsimgrid,binary}
Gabriel Corona [Thu, 2 Jan 2014 10:01:12 +0000 (11:01 +0100)]
[mc] Remvove mc_{global_variables,local_variables,variables_type}_{libsimgrid,binary}

10 years ago[mc] Do not use mc_{global_variables,local_variables,variables_type}_{libsimgrid...
Gabriel Corona [Thu, 2 Jan 2014 09:49:24 +0000 (10:49 +0100)]
[mc] Do not use mc_{global_variables,local_variables,variables_type}_{libsimgrid,binary}

10 years ago[mc] Refactor, group some informations about a given ELF in mc_object_info_t
Gabriel Corona [Thu, 2 Jan 2014 08:52:19 +0000 (09:52 +0100)]
[mc] Refactor, group some informations about a given ELF in mc_object_info_t

10 years ago[mc] Use LANG=C when calling objdump
Gabriel Corona [Thu, 2 Jan 2014 13:50:52 +0000 (14:50 +0100)]
[mc] Use LANG=C when calling objdump

The output of objdump change with the locale and the parser fails with some locales.

Conflicts:
src/mc/mc_checkpoint.c

10 years ago[mc] Add some documentation to the MC DWARF code
Gabriel Corona [Tue, 24 Dec 2013 11:04:04 +0000 (12:04 +0100)]
[mc] Add some documentation to the MC DWARF code

10 years ago[mc] Fix bug in recurive call of compare_heap_area_with_type
Gabriel Corona [Mon, 6 Jan 2014 13:58:48 +0000 (14:58 +0100)]
[mc] Fix bug in recurive call of compare_heap_area_with_type

When comparing arrays, the number of elements of the array was passed instead of the size of the elements.

10 years ago[mc] Fix bug when parsing /proc/self/maps
Gabriel Corona [Fri, 20 Dec 2013 11:58:13 +0000 (12:58 +0100)]
[mc] Fix bug when parsing /proc/self/maps

Sometimes, the heap is not found by the MC :

* the MC expects the heap to be anonymous/unlabelled in
  /proc/self/maps;

* the heap may be labelled as as [stack:$tid] in /proc/self/maps at
  some instants of the execution of the program because the tasks
  stacks are allocated on the heap.

10 years ago[mc] Fix broken objdump parser with new versions of objdump
Gabriel Corona [Fri, 20 Dec 2013 10:07:01 +0000 (11:07 +0100)]
[mc] Fix broken objdump parser with new versions of objdump

objdump -Wo used to produce this:

     Offset   Begin    End      Expression
     00000000 000000000040149c 000000000040149d (DW_OP_breg7 (rsp): 8)
     00000000 000000000040149d 00000000004014a0 (DW_OP_breg7 (rsp): 16)
     00000000 00000000004014a0 00000000004014ba (DW_OP_breg6 (rbp): 16)
     00000000 00000000004014ba 00000000004014bb (DW_OP_breg7 (rsp): 8)
     00000000 <End of list>
     00000060 00000000004014bb 00000000004014bc (DW_OP_breg7 (rsp): 8)
     00000060 00000000004014bc 00000000004014bf (DW_OP_breg7 (rsp): 16)
     00000060 00000000004014bf 00000000004014c6 (DW_OP_breg6 (rbp): 16)
     00000060 00000000004014c6 00000000004014c7 (DW_OP_breg7 (rsp): 8)
     00000060 <End of list>
     000000c0 00000000004014c7 00000000004014c8 (DW_OP_breg7 (rsp): 8)
     000000c0 00000000004014c8 00000000004014cb (DW_OP_breg7 (rsp): 16)
     000000c0 00000000004014cb 00000000004014d2 (DW_OP_breg6 (rbp): 16)
     000000c0 00000000004014d2 00000000004014d3 (DW_OP_breg7 (rsp): 8)
     000000c0 <End of list>
     00000120 00000000004014d3 00000000004014d4 (DW_OP_breg7 (rsp): 8)
     00000120 00000000004014d4 00000000004014d7 (DW_OP_breg7 (rsp): 16)
     00000120 00000000004014d7 00000000004018c0 (DW_OP_breg6 (rbp): 16)
     00000120 <End of list>

but now we get this:

    Offset   Begin    End      Expression
    00000000 0000000000401252 0000000000401253 (DW_OP_breg7 (rsp): 8)
    00000014 0000000000401253 0000000000401256 (DW_OP_breg7 (rsp): 16)
    00000028 0000000000401256 0000000000401270 (DW_OP_breg6 (rbp): 16)
    0000003c 0000000000401270 0000000000401271 (DW_OP_breg7 (rsp): 8)
    00000050 <End of list>
    00000060 0000000000401271 0000000000401272 (DW_OP_breg7 (rsp): 8)
    00000074 0000000000401272 0000000000401275 (DW_OP_breg7 (rsp): 16)
    00000088 0000000000401275 000000000040127c (DW_OP_breg6 (rbp): 16)
    0000009c 000000000040127c 000000000040127d (DW_OP_breg7 (rsp): 8)
    000000b0 <End of list>
    000000c0 000000000040127d 000000000040127e (DW_OP_breg7 (rsp): 8)
    000000d4 000000000040127e 0000000000401281 (DW_OP_breg7 (rsp): 16)
    000000e8 0000000000401281 0000000000401288 (DW_OP_breg6 (rbp): 16)
    000000fc 0000000000401288 0000000000401289 (DW_OP_breg7 (rsp): 8)
    00000110 <End of list>
    00000120 0000000000401289 000000000040128a (DW_OP_breg7 (rsp): 8)
    00000134 000000000040128a 000000000040128d (DW_OP_breg7 (rsp): 16)
    00000148 000000000040128d 00000000004016a1 (DW_OP_breg6 (rbp): 16)
    0000015c <End of list>
    0000016c 00000000004016a1 00000000004016a2 (DW_OP_breg7 (rsp): 8)
    00000180 00000000004016a2 00000000004016a5 (DW_OP_breg7 (rsp): 16)
    00000194 00000000004016a5 0000000000401bd7 (DW_OP_breg6 (rbp): 16)
    000001a8 <End of list>
    000001b8 0000000000401bd7 0000000000401bd8 (DW_OP_breg7 (rsp): 8)
    000001cc 0000000000401bd8 0000000000401bdb (DW_OP_breg7 (rsp): 16)
    000001e0 0000000000401bdb 0000000000401ced (DW_OP_breg6 (rbp): 16)
    000001f4 0000000000401ced 0000000000401cee (DW_OP_breg7 (rsp): 8)
    00000208 <End of list>

The offset is not stable in a given list.

10 years agoRelease version 3.10-rc2. v3_10_rc2
Arnaud Giersch [Fri, 8 Nov 2013 22:55:41 +0000 (23:55 +0100)]
Release version 3.10-rc2.

10 years agoThis part is not relevant anymore.
Arnaud Giersch [Fri, 8 Nov 2013 22:53:10 +0000 (23:53 +0100)]
This part is not relevant anymore.

10 years agoGive smpiff the directory to libf2c.
Arnaud Giersch [Fri, 8 Nov 2013 22:04:03 +0000 (23:04 +0100)]
Give smpiff the directory to libf2c.
(cherry picked from commit 1848d40fafafab07f8c798116d5c507065f4c97b)

10 years agoDon't add include directories when f77 support is disabled.
Arnaud Giersch [Fri, 8 Nov 2013 22:03:10 +0000 (23:03 +0100)]
Don't add include directories when f77 support is disabled.
(cherry picked from commit 482244d2827841bb565348470beb8167c7558337)

10 years agoTry to fix temp file creation.
Arnaud Giersch [Fri, 8 Nov 2013 16:49:41 +0000 (17:49 +0100)]
Try to fix temp file creation.
(cherry picked from commit 0be4d91dea4f9aeb5e9e298dc579d4ba2b03a2b7)

10 years agobe a little more tricky and hopefully more portable
Augustin Degomme [Fri, 8 Nov 2013 00:12:20 +0000 (01:12 +0100)]
be a little more tricky and hopefully more portable
(cherry picked from commit 3e7047f7353ca1853d3eb5415264714a0315a8d4)

10 years agomore bash->sh changes
Augustin Degomme [Thu, 7 Nov 2013 23:47:06 +0000 (00:47 +0100)]
more bash->sh changes
(cherry picked from commit 65f30b16e0e4b23e41c6306290bc3f04f66986a8)

10 years agothanks to Matthieu Volat, freebsd build may work again. If it doesn't, blame him
Augustin Degomme [Thu, 7 Nov 2013 23:08:30 +0000 (00:08 +0100)]
thanks to Matthieu Volat, freebsd build may work again. If it doesn't, blame him
(cherry picked from commit afa65d266d24d09dce77e5a2e40dec5abdd791b7)

10 years agoflto has not the right effect with clang
Augustin Degomme [Thu, 7 Nov 2013 23:02:22 +0000 (00:02 +0100)]
flto has not the right effect with clang
(cherry picked from commit 56d1e384b07f2eacd980c30a447504cdf5f1d6ef)

10 years agoI blame someone else for this
Augustin Degomme [Thu, 7 Nov 2013 22:28:18 +0000 (23:28 +0100)]
I blame someone else for this
(cherry picked from commit 9e330fa625482e41928374164d70cdd209f3f0c7)