Jump to content
  • 0
Sign in to follow this  
Vanilla

Vanilla core with gcc 4.2 or > 4.8?

Question

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)?

Share this post


Link to post

11 answers to this question

Recommended Posts

  • 0

I think you should move forward and go ahead and make it for 4.8's improvements and use 4.8 rather than 4.9 to keep it as stable as possible.

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

You're right. I'll try that since on 64 bit system it won't be that easy.

  • Love 1

Share this post


Link to post
  • 0

You're right. I'll try that since on 64 bit system it won't be that easy.

I'm glad you continue the work.

Good luck

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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.

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 0

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.

Share this post


Link to post
  • 0

.Xero

 

must make a mandatory install on a new machine

 

otherwise

 

pkg install gcc48

 

or take the lib What need the db and game

 

 

Share this post


Link to post
  • 0

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 ^^

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.