forums.silverfrost.com Forum Index forums.silverfrost.com
Welcome to the Silverfrost forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Linking failing with large obj files

 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> 64-bit
View previous topic :: View next topic  
Author Message
StamK



Joined: 12 Oct 2016
Posts: 145

PostPosted: Fri Oct 14, 2016 10:45 pm    Post subject: Linking failing with large obj files Reply with quote

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
View user's profile Send private message
StamK



Joined: 12 Oct 2016
Posts: 145

PostPosted: Sat Oct 15, 2016 12:26 am    Post subject: Reply with quote

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
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7095
Location: Salford, UK

PostPosted: Sat Oct 15, 2016 9:04 am    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
StamK



Joined: 12 Oct 2016
Posts: 145

PostPosted: Tue Oct 18, 2016 12:00 pm    Post subject: Reply with quote

I sent you an email with the file, many thanks,
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7095
Location: Salford, UK

PostPosted: Fri Jan 20, 2017 11:08 am    Post subject: Reply with quote

This bug has been fixed for the next release.
Back to top
View user's profile Send private message AIM Address
StamK



Joined: 12 Oct 2016
Posts: 145

PostPosted: Wed Dec 02, 2020 1:57 am    Post subject: Reply with quote

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
View user's profile Send private message
JohnCampbell



Joined: 16 Feb 2006
Posts: 2341
Location: Sydney

PostPosted: Wed Dec 02, 2020 7:05 am    Post subject: Reply with quote

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
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7095
Location: Salford, UK

PostPosted: Wed Dec 02, 2020 8:56 am    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
JohnCampbell



Joined: 16 Feb 2006
Posts: 2341
Location: Sydney

PostPosted: Wed Dec 02, 2020 11:44 am    Post subject: Reply with quote

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
View user's profile Send private message
DietmarSiepmann



Joined: 03 Jun 2013
Posts: 279

PostPosted: Wed Dec 02, 2020 5:15 pm    Post subject: Reply with quote

John,

Quote:
What is "/prog" ?
It could be interpreted as /pr > /profile, which would dramatically change the size of the executable.

If you type
Code:
ftn95 /?
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
Code:
ftn95 --help
and then having a look in

Code:
Compiler options - Quick referenc


Regards,
Dietmar
Back to top
View user's profile Send private message
StamK



Joined: 12 Oct 2016
Posts: 145

PostPosted: Thu Dec 03, 2020 1:59 am    Post subject: Reply with quote

Paul, I just sent you by email some code that demonstrates the issue. Thanks
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7095
Location: Salford, UK

PostPosted: Thu Dec 03, 2020 2:22 pm    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
StamK



Joined: 12 Oct 2016
Posts: 145

PostPosted: Thu Dec 03, 2020 2:44 pm    Post subject: Reply with quote

I can confirm that with the updated SLIN64 this issue is magically solved.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> 64-bit All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group