Jump to content

Recommended Posts

  • Replies 13
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

  • Bot

If you dont plan on using CLANG theres nothing you need to do install gcc from ports and everything should work no idea if libcxxrt will play along tho.

Dont copy libs from other system they can heavily damage your system bcs they were not made for the version of  FreeBSD you are using.

 

Kind regards

MartPwnS

english_banner.gif

Link to comment
Share on other sites

There's no problem with uploading the libs he normally uses. As long as he doesn't overwrite any system libs it should be okay.

I guess he'll run into compatibility problems if he doesn't upload them. Installing gcc from ports won't do it, libstdc++ would be from a higher version. The server won't boot I guess.

Link to comment
Share on other sites

That's the point. If you're copying the libs then everything works with newer versions. But if not, the game will complain about the newer version of your gcc libs. Your usual approach is exactly the way to do it. I've set up a test server a few days ago. It was running on FreeBSD 10 and I had no problems. I didn't even need to install gcc, I just copied the libs and everything worked :) That's what I meant with uploading the usual libs.

Link to comment
Share on other sites

  • Bot

Where did i argue against myself ? 

I said keep doing whatever you are doing until you break sth.

 

The whole point of shared linking is that you can upgrade your libraries and not stay with the same old ones. Most of them if not all are not backwards compatible so one would have a problem if one went from BSD10 => BSD9.X but one is doing an upgrade so nothing should error out.

 

Old systems ldd output (Special paths come from /etc/libmap.conf):

 libthr.so.3 => /lib/libthr.so.3 (0x285f1000)
 libstdc++.so.6 => /usr/local/lib/gcc49/libstdc++.so.6 (0x28612000)
 libm.so.5 => /lib/libm.so.5 (0x28710000)
 libgcc_s.so.1 => /usr/local/lib/gcc49/libgcc_s.so.1 (0x2872b000)
 libc.so.7 => /lib/libc.so.7 (0x28748000)

New systems ldd output before we installed gcc:

 libthr.so.3 => /lib/libthr.so.3 (0x285f0000)
 libstdc++.so.6 => not found (0)
 libm.so.5 => /lib/libm.so.5 (0x28612000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28638000)
 libc.so.7 => /lib/libc.so.7 (0x28644000)

New system after we installed gcc:

 libthr.so.3 => /lib/libthr.so.3 (0x285f0000)
 libstdc++.so.6 => /usr/local/lib/gcc49/libstdc++.so.6 (0x28612000)
 libm.so.5 => /lib/libm.so.5 (0x286fd000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28723000)
 libc.so.7 => /lib/libc.so.7 (0x2872f000)

Result:

A working binary + a clean system that is up2date and properly organized.
Notice the changes(0x)

english_banner.gif

Link to comment
Share on other sites

Sorry I misunderstood your post. You said copying libs is bad. Then you say you always copied the libs needed. Then you clarified that copying them could break the system.

That's the contradiction I mentioned.

 

You're right about that but I'm not talking about the system libs only. E. g. the gamefile uses libmd which isn't a system library. Of course you could install the port and are ready to go as long as they're compatible (in most cases you're right, they are). That's one of those libs I do upload (in normal cases, I'm using static linked gamefiles).

 

To your new system (before installing gcc):

libstdc++.so.6 => not found (0)

 

Yep. Not found. You'd either upload your own libstdc++.so.6 or build a new gcc. There you're right. Installing is better as long as they keep compatibility. But you don't have to. If you compile the game with the newest version of gcc then there's no reason in installing gcc on your new machine and using both compilers (clang standard and gcc installed). Just upload the lib and you're ready to go :) That's what I meant.

Oh, and using the libraries you used for building on your production environment doesn't break things....

Also note that the library missing on your new system doesn't even change at all. It's the same library you used on the old system since it's still gcc 4.9, nothing more. You used it before and you're using it now. It doesn't make a difference at all. Only the system libraries do change and they're built in by default so there's no need to upload libs you aren't missing^^

Link to comment
Share on other sites

That's true and now I understand what you meant. But the example also shows that the way I'm doing it isn't bad either. Especially if you're using FreeBSD 10. Installing gcc is unnecessary there unless you really need it. Now that everything's cleared up I suggest we both are right and happy :D

 

Oh, I wrote libmd not libm :)

Link to comment
Share on other sites

  • Bot

Well i never really wanted to be right or sth i wanted to point out that one should be careful with copying libs especially if one is not experienced as OP is i guess.

I just used a drastical and too general way to express it.

 

Theres nothing against copying a lib from system to system if you pay attention and dont work in /usr/lib and yes its true that one can copy  libstdc++.so.6 over, thats indirectly laid out in my post (0x28612000 == 0x28612000).

We somewhat drifted away from the problem tho.

 

I consider this matter closed.

 

Kind regards and a nice saturday night

MartPwnS

english_banner.gif

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.