OMNeT++/OMNEST Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000155OMNeT++command line toolspublic2010-04-23 16:212010-12-09 17:12
Assigned Torhornig 
PlatformOSOS Version
Product Version4.1b3 
Target VersionFixed in Version4.2 
Summary0000155: Large projects cannot be built on MINGW because of linker command line length limitation
DescriptionThe INETMANET project cannot be linked if all sources are included in the build (i.e. including the underTest directory). Command line arguments are limited to 32K on windows. It is possible to pass a long command line by putting the commands into a file and pasing the filename as @filename to g++.
Additional InformationA fix has been implemented which puts the linker command line onto a file and invokes g++ using the @.tmp$$ syntax on windows if we are using minge compiler and it detects larger command line size. Unfortunately g++ extracts all the options from the file and tries to pass the expanded command line when it invokes internally the linker program. So the linker will again fail. It would be a solution if we could convince g++ not to expand the file. There are suggestions to use the -Wl,@filename option to pass all the object files to the linker without expanding it. At the moment it seems that in this case the nternal "collect2" program fails.

See: [^]
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
andras (administrator)
2010-04-23 16:52

Possible workaround: keep the @tmpfile fix, and additionally wrap the linker command into a perl script. The perl script could split up the list of object files to 2 or more sub-lists (each <32K), create temporary static libs from each of them, and call the linker to build dll from those static libs.
rhornig (administrator)
2010-12-09 12:49

The current workaround (using response files i.e. @file) is not working becaose of a bug in mingw'S collect2 executable.

See the related discussion on the gcc list. [^]
rhornig (administrator)
2010-12-09 17:12

Added a preliminary step of building static library first using the @response files syntax. The library tool can handle response files correctly. After this, the created temporary static lib is used in the linker command line.

This could be dropped if the @resultfile handling in MINGW/GCC 4.5.1 is fixed and a new version is bundled with omnet.

- Issue History
Date Modified Username Field Change
2010-04-23 16:21 rhornig New Issue
2010-04-23 16:52 andras Note Added: 0000241
2010-05-06 09:31 andras Status new => confirmed
2010-12-09 12:49 rhornig Note Added: 0000343
2010-12-09 17:12 rhornig Note Added: 0000346
2010-12-09 17:12 rhornig Status confirmed => resolved
2010-12-09 17:12 rhornig Fixed in Version => 4.2
2010-12-09 17:12 rhornig Resolution open => fixed
2010-12-09 17:12 rhornig Assigned To => rhornig

Copyright © 2000 - 2022 MantisBT Team
Powered by Mantis Bugtracker