Changeset 233


Ignore:
Timestamp:
May 23, 2003, 9:59:53 PM (22 years ago)
Author:
bird
Message:

The list segmens must be dword aligned to work.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/emxomf/emxomf.c

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r232 r233  
    13971397    P (bit 0)           USE32 */
    13981398
    1399 static int seg_def (int name_index, int class_index, long size, int stack)
     1399static int seg_def (int name_index, int class_index, long size, int stack, int fAlign4B)
    14001400{
    14011401  byte seg_attr;
    14021402
    1403   seg_attr = (stack ? 0x75 : 0x69);
     1403  seg_attr =  (fAlign4B ? (stack ? 0xb5 : 0xa9) : (stack ? 0x75 : 0x69) );
    14041404  if (size > 0x10000 || force_big)
    14051405    {
     
    20102010      set_ptr->seg_index[j] =
    20112011        seg_def (set_ptr->seg_name[j], code_class_name,
    2012                  4 * (j == 1 ? set_ptr->count : set_ptr->def), FALSE);
     2012                 4 * (j == 1 ? set_ptr->count : set_ptr->def), FALSE, TRUE);
    20132013}
    20142014
     
    30283028
    30293029  text_index = seg_def (text_seg_name, code_class_name, text_size,
    3030                         FALSE);
     3030                        FALSE, FALSE);
    30313031  write_set_segs ();
    30323032
    30333033  if (udat_seg_string != NULL)
    30343034    udat_index = seg_def (udat_seg_name, data_class_name, data_size,
    3035                           FALSE);
     3035                          FALSE, FALSE);
    30363036  data_index = seg_def (data_seg_name, data_class_name,
    30373037                        (udat_seg_string == NULL ? data_size : 0),
    3038                         FALSE);
     3038                        FALSE, FALSE);
    30393039  if (udat_seg_string == NULL)
    30403040    udat_index = data_index;
    30413041
    30423042  bss_index = seg_def (bss_seg_name, bss_class_name, a_out_h->bss_size,
    3043                        FALSE);
     3043                       FALSE, FALSE);
    30443044
    30453045  if (mod_type == MT_MAIN)
    3046     stack_index = seg_def (stack_seg_name, stack_class_name, 0x8000, TRUE);
     3046    stack_index = seg_def (stack_seg_name, stack_class_name, 0x8000, TRUE, FALSE);
    30473047
    30483048  if (!strip_symbols)
     
    30503050      convert_debug ();         /* After seg_def of text, data & bss */
    30513051      symbols_index = seg_def (symbols_seg_name, debsym_class_name,
    3052                                sst.size, FALSE);
     3052                               sst.size, FALSE, FALSE);
    30533053      types_index = seg_def (types_seg_name, debtyp_class_name,
    3054                              tt.size, FALSE);
     3054                             tt.size, FALSE, FALSE);
    30553055    }
    30563056
Note: See TracChangeset for help on using the changeset viewer.