Alexandre Julliard : winegcc: Add support for specifying section alignment on Solaris.

Alexandre Julliard julliard at winehq.org
Tue Jul 22 09:35:55 CDT 2008


Module: wine
Branch: master
Commit: e468ab3585d3d2067350fb6596187cd5f6f5b90e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e468ab3585d3d2067350fb6596187cd5f6f5b90e

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Jul 22 13:27:07 2008 +0200

winegcc: Add support for specifying section alignment on Solaris.

---

 tools/winegcc/winegcc.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index b4a314d..113819d 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -160,6 +160,7 @@ struct options
     const char* wine_objdir;
     const char* output_name;
     const char* image_base;
+    const char* section_align;
     strarray* prefix;
     strarray* lib_dirs;
     strarray* linker_args;
@@ -640,6 +641,17 @@ static void build(struct options* opts)
     }
 #endif
 
+#ifdef __sun
+    {
+        char *mapfile = get_temp_file( output_name, ".map" );
+        const char *align = opts->section_align ? opts->section_align : "0x1000";
+
+        create_file( mapfile, 0644, "text = A%s;\ndata = A%s;\n", align, align );
+        strarray_add(link_args, strmake("-Wl,-M,%s", mapfile));
+        strarray_add(tmp_files, mapfile);
+    }
+#endif
+
     for ( j = 0; j < lib_dirs->size; j++ )
 	strarray_add(link_args, strmake("-L%s", lib_dirs->base[j]));
 
@@ -971,6 +983,11 @@ int main(int argc, char **argv)
                                 opts.image_base = strdup( Wl->base[++j] );
                                 continue;
                             }
+                            if (!strcmp(Wl->base[j], "--section-alignment") && j < Wl->size - 1)
+                            {
+                                opts.section_align = strdup( Wl->base[++j] );
+                                continue;
+                            }
                             if (!strcmp(Wl->base[j], "-static")) linking = -1;
                             strarray_add(opts.linker_args, strmake("-Wl,%s",Wl->base[j]));
                         }




More information about the wine-cvs mailing list