View previous topic :: View next topic |
Author |
Message |
StamK
Joined: 12 Oct 2016 Posts: 159
|
Posted: Fri Oct 14, 2016 10:45 pm Post subject: Linking failing with large obj files |
|
|
It appears that if the size of the compiled obj file is more than 5mb, then linking (in this case into a dll) will fail. The error message is not particularly helpful.
If I split the file into two and recompile, then the linking will be succesfull.
Below is the error message
004056b9 sym_compare_name(<ptr><ptr>struct�SYMBOL,<ptr><ptr>struct�SYMBOL) [+0022]
10012322 qsort [+0112]
0040275a build_executable(void) [+0cc9]
00401000 main [+0b3d]
Thanks |
|
Back to top |
|
|
StamK
Joined: 12 Oct 2016 Posts: 159
|
Posted: Sat Oct 15, 2016 12:26 am Post subject: |
|
|
Actually it appears that there is also another issue, which is related to the total size of the obj files that are linked into the dll - it appears that at around 20Mb of total obj size the linker will fail with the following error
0040275a build_executable(void) [+1658]
00401000 main [+0b3d] |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7933 Location: Salford, UK
|
Posted: Sat Oct 15, 2016 9:04 am Post subject: |
|
|
We can investigate this SLINK64 issue but it would be a great help if you were able to provide some source code that causes this failure. |
|
Back to top |
|
|
StamK
Joined: 12 Oct 2016 Posts: 159
|
Posted: Tue Oct 18, 2016 12:00 pm Post subject: |
|
|
I sent you an email with the file, many thanks, |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7933 Location: Salford, UK
|
Posted: Fri Jan 20, 2017 11:08 am Post subject: |
|
|
This bug has been fixed for the next release. |
|
Back to top |
|
|
StamK
Joined: 12 Oct 2016 Posts: 159
|
Posted: Wed Dec 02, 2020 1:57 am Post subject: |
|
|
Now with 8.70 I am getting the following with a large file
***SLINK64 failure - abnormally large store block
it was working fine in 8.51. I compiled it with
ftn95 /windows /sparam 0 /f2k /cfpp /VPARAM bit64 1 /64 /prog |
|
Back to top |
|
|
JohnCampbell
Joined: 16 Feb 2006 Posts: 2556 Location: Sydney
|
Posted: Wed Dec 02, 2020 7:05 am Post subject: |
|
|
What is "/prog" ?
It could be interpreted as /pr > /profile, which would dramatically change the size of the executable.
Oops, just found /progress, but it might be worth checking some of these options. |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7933 Location: Salford, UK
|
Posted: Wed Dec 02, 2020 8:56 am Post subject: |
|
|
StamK
Can you send me the source files. If these have not change from the previous issue then please resend them anyway. |
|
Back to top |
|
|
JohnCampbell
Joined: 16 Feb 2006 Posts: 2556 Location: Sydney
|
Posted: Wed Dec 02, 2020 11:44 am Post subject: |
|
|
It would be interesting to know what is causing this problem.
Is the use of variable initialisation in data or F90+ variable declaration statements causing the size problem, or is it other types of coding constructs ? |
|
Back to top |
|
|
DietmarSiepmann
Joined: 03 Jun 2013 Posts: 279
|
Posted: Wed Dec 02, 2020 5:15 pm Post subject: |
|
|
John,
Quote: | What is "/prog" ?
It could be interpreted as /pr > /profile, which would dramatically change the size of the executable. |
If you type e.g. for ftn95 version 8.63 then options /PRofile , /PROGress_meter , /PROMote_long_ints are displayed (besides all the other options). The capitalized parts make the options unique (i.e. /PR is the same as /PRofile). You may see the options you would compile with by typing
Code: | ftn95 file.for <your options> /lis | and have a look in file file.lis having been generated as a result of the command. For example Code: | ftn95 file.for /PR /lis | would generate file file.lis containing a section "Compiler options in effect:" and in that section you will find the string "PROFILE;". Option /PR is only available if /64 is set. Moreover you also find information about the salflibc path and the salflibc version at the eginning of lis file fle.lis.
Unfortunately I could not find options /PRofile , /PROGress_meter if typing
and then having a look in
Code: | Compiler options - Quick referenc |
Regards,
Dietmar |
|
Back to top |
|
|
StamK
Joined: 12 Oct 2016 Posts: 159
|
Posted: Thu Dec 03, 2020 1:59 am Post subject: |
|
|
Paul, I just sent you by email some code that demonstrates the issue. Thanks |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7933 Location: Salford, UK
|
Posted: Thu Dec 03, 2020 2:22 pm Post subject: |
|
|
StamK
SLINK64 has an internal limit on the total size of the object data. I have increased this limit and sent you a link to a new SLINK64 via a personal message. |
|
Back to top |
|
|
StamK
Joined: 12 Oct 2016 Posts: 159
|
Posted: Thu Dec 03, 2020 2:44 pm Post subject: |
|
|
I can confirm that with the updated SLIN64 this issue is magically solved. |
|
Back to top |
|
|
|