Jump to content

Vanilla core with gcc 4.2 or > 4.8?


Recommended Posts

Hello dear users,

 

I've a small question for you regarding the future of my vanilla project.

 

FreeBSD has the well-known compiler "gcc" installed by default (only after 10.0-RELEASE it's gone).

YMIR developed and compiled the source on this default gcc-version. It's the 4.2 version.

But wait, why is it so old? We have 4.8 and currently developing 4.9!

 

It's all about the license. gcc used to have the GNU GPL v2 license. But since 4.3 it's changed to GNU GPL v3. FreeBSD didn't want to adapt to these new license agreements so that's why they decided to go with 4.2 anyway. It's now clearly deprecated (that's why in 10.0 it's changed to clang compiler).

 

Why do I tell you all these information?

Because it's an imporant fact for the question I'm going to ask. gcc made some great improvements during the development. There is a huge performance boost and boost on file size from 4.2 to 4.8. I've managed to compile it with your help on 4.8. Now it's about 42mb big unstriped.

 

So what do we have for the future vanilla versions?

Better performance, more stability and code optimizations and even a smaller file size!

 

But there's also a bad site about this. I told you FreeBSD isn't updating gcc higher than 4.2 - which clearly indicates the problem. 4.8 or even 4.9 uses newer libraries (for example libstdc++.so.6)

These newer libraries can only be achieved by installing the newer gcc version and adding them to /etc/libmap.conf

It's very easy and I'd write a small guide (you just have to install and then copy'n'paste one list).

 

But since I stated earlier that I want to make vanilla more compatible with every system it's now a fact that with this new big feature we're creating a dependency on the new gcc version.

 

So what's your point about it?

What do you prefer? Having the old compiling methods with no need to install a newer gcc or do you prefer a much faster binary but with the need to install it?

 

And another question: Do you prefer 4.8 or the newer 4.9 which is currently under development (4.9 COULD have some stability bugs but I didn't monitor any problems like that, compiling worked without any problem too) but a little bit faster (and in the future when it'll be released it'll outclass 4.8)?

We are the tortured.
We're not your friends.
As long as we're not visible.
We are unfixable.

Link to comment
Share on other sites

I'd just use GCC 4.8 and ship the necessary libraries (libstdc++, ...) with your released game.

Using the -rpath Linker-Option you can force the loader to search one of your custom library-paths first, allowing you to leave libmap.conf / ldconfig unchanged.
The user just needs to place all custom libraries into this directory, which shouldn't be too hard.

Example:
(Obviously I use /usr/local/lib32/metin2 for my libraries)

[...] -Wl,-rpath,/usr/local/lib32/metin2

Kind Regards,
Tim

  • Love 3
Link to comment
Share on other sites

it's working and it's stable. Compiled with gcc4.9 for testing purpose.

I'll make a difference list and then choose with you what version to use. Then it'll be released.

 

Oh, and I forgot: In the new version you can use more attributes on your skills (e. g. you can enhance your attributues like str, con, int and dex with your skills..)

  • Love 1

We are the tortured.
We're not your friends.
As long as we're not visible.
We are unfixable.

Link to comment
Share on other sites

it's working and it's stable. Compiled with gcc4.9 for testing purpose.

I'll make a difference list and then choose with you what version to use. Then it'll be released.

 

Oh, and I forgot: In the new version you can use more attributes on your skills (e. g. you can enhance your attributues like str, con, int and dex with your skills..)

I hope now i can run that :)

Because old version's i can't run because libs and more libs.

I hope now everything is ok.

 

Regards.

Link to comment
Share on other sites

New libs will be included from more than one source. The main source is now /usr/local/lib32/metin2 as Tim mentioned in a post earlier. I've used his suggestion so it won't be a problem anymore. You don't need to install devil or any other software anymore, I'll provide every lib within my package.

  • Love 2

We are the tortured.
We're not your friends.
As long as we're not visible.
We are unfixable.

Link to comment
Share on other sites

  • 2 weeks later...

New libs will be included from more than one source. The main source is now /usr/local/lib32/metin2 as Tim mentioned in a post earlier. I've used his suggestion so it won't be a problem anymore. You don't need to install devil or any other software anymore, I'll provide every lib within my package.

 

so awesome

 

we watching direly from here so thanks for all

Link to comment
Share on other sites

  • 5 months later...

I'd just use GCC 4.8 and ship the necessary libraries (libstdc++, ...) with your released game.

Using the -rpath Linker-Option you can force the loader to search one of your custom library-paths first, allowing you to leave libmap.conf / ldconfig unchanged.

The user just needs to place all custom libraries into this directory, which shouldn't be too hard.

Example:

(Obviously I use /usr/local/lib32/metin2 for my libraries)

[...] -Wl,-rpath,/usr/local/lib32/metin2

Kind Regards,

Tim

Have you add the -rpath to your CFLAGS or on an other point?

 

I have the big problem that when I want to use my gamefile on an other root they dont work.

Link to comment
Share on other sites

I use this vm http://metin2dev.org/board/topic/389-not-really-a-rlsvm-with-freebsd-92-src-compileable/

When I compile it on this all works fine with gcc48 but on other Roots/VM they not work because the missing libs, but the libs are on the other root too.

 

That is the reaseon why I want to build the gamefile with specific lib path.

 

I hope you understand what I meens ^^

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.