Build Question for Martin

Use this forum if you want to discuss a problem or ask a question related to a hMailServer beta release.
Post Reply
superman20
New user
New user
Posts: 29
Joined: 2015-03-05 03:10

Build Question for Martin

Post by superman20 » 2016-04-14 01:33

I'm wanting to creating a working build of hMailServer so I can submit some code changes for some of the improvements and bugs I've found lately. I followed the instructions on the website and got it to compile (after adding a reference to the boost libraries in the project settings). However, there is a link warning:

Code: Select all

LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
I fully understand what that warning is...I'd just like Martin to confirm that he also gets that warning when compiling and that the production releases are built with that warning. Whatever your answer, I promise not to debate whether or not ignoring that warning is good or bad. I just want to make sure I am building identically to the production releases before I do any real work (as I will be testing my changes on my own production server and the ONLY differences I want to test are the ones I make on purpose).

Thanks.

User avatar
mattg
Moderator
Moderator
Posts: 21319
Joined: 2007-06-14 05:12
Location: 'The Outback' Australia

Re: Build Question for Martin

Post by mattg » 2016-04-14 10:41

Last time I did a build I didn't get that , but that was probably 2 years ago

Lot has changed since then
Just 'cause I link to a page and say little else doesn't mean I am not being nice.
https://www.hmailserver.com/documentation

User avatar
Dravion
Senior user
Senior user
Posts: 1674
Joined: 2015-09-26 11:50
Location: Germany
Contact:

Re: Build Question for Martin

Post by Dravion » 2016-04-14 10:41

Thats not the only issue you will run into.
But Martin is a busy Guy..However I figured it out on my own and it runs for me because i needed a 64-Bit Version+Installer and Regressiontests.

Tip:
*Take a look of the post build events.
*Fix the OpenSSL hardcoded path missmatch.
*If you do x64 builds doublecheck build events.
*Fix the Webinterface hardcoded version check.
*Fix the Innosetup Script build path.
*If you get Linker errors clean and rebuilt.
*Be carefull with the GUI-Forms (there is a glitch in rendering and displaying the forms and if you save it in this state you are screwed)

For now thats all i remember but i think there is more like this.

User avatar
SorenR
Senior user
Senior user
Posts: 4412
Joined: 2006-08-21 15:38
Location: Denmark

Re: Build Question for Martin

Post by SorenR » 2016-04-14 13:02

superman20 wrote:I'm wanting to creating a working build of hMailServer so I can submit some code changes for some of the improvements and bugs I've found lately. I followed the instructions on the website and got it to compile (after adding a reference to the boost libraries in the project settings). However, there is a link warning:

Code: Select all

LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
I fully understand what that warning is...I'd just like Martin to confirm that he also gets that warning when compiling and that the production releases are built with that warning. Whatever your answer, I promise not to debate whether or not ignoring that warning is good or bad. I just want to make sure I am building identically to the production releases before I do any real work (as I will be testing my changes on my own production server and the ONLY differences I want to test are the ones I make on purpose).

Thanks.
I'm still on 5.4.2 (with a number of modifications) and I get these every time... So far, ignoring them has worked fine :oops:
SørenR.

Algorithm (noun.)
Word used by programmers when they do not want to explain what they did.

superman20
New user
New user
Posts: 29
Joined: 2015-03-05 03:10

Re: Build Question for Martin

Post by superman20 » 2016-04-14 14:19

Thanks for the replies. Let me clarify some things about my setup and why I asked:

1) I am ONLY building the sever. My intent is to make a new exe from the current product version 5.6.4 that is identical to production except for my changes. For testing in my production server, I'm just going to swap out executables. No x64 build.

2) I am using Boost 1.56 and OpenSSL 1.0.1p because that is what the production version seemed to use (thus, I didn't have to change the hard coded paths). I am trying for complete binary compatibility with existing production version.

3)I only asked about this issue because in the right (likely rare) circumstance, it can lead to undesirable code execution. I'm a C++ developer by profession. I typically work on Client/Server software for the process control industry. We routinely use 3rd party libraries that we can't control. One of these libraries didn't compile with the same version (static vs dll) of CRT that we used and we had this warning. I'd say 9 times out 10, this warning can be ignored or placated with /NODEFAULTLIB (which we did). The end effect is that you have 2 versions of the CRT running inside your process. In our case, we were calling some low level CRT routines and because the 2 CRT's had 2 different copies of a CRT global variable, the code execution was not as expected because the global variables had different values depending on which CRT was being executed. If Martin gets this warning when he compiles, then I'd be fine with it because I'm obviously running that way now and it works. However, if Martin doesn't get this warning then I want to fix my build to use consistent libraries.

(Later Edit: CRT = C Runtime for those who aren't professional programmers...I try not use acronyms willy-nilly...sorry)

User avatar
jimimaseye
Moderator
Moderator
Posts: 8960
Joined: 2011-09-08 17:48

Re: Build Question for Martin

Post by jimimaseye » 2016-04-14 15:37

superman20 wrote:I try not use acronyms willy-nilly...sorry)
YEY!!! They use "willy-nilly" in the States too!! (I thought it would be one of those English words we gave that you guys that you chose to discard or change. :wink: ) Great phrase.
5.7 on test.
SpamassassinForWindows 3.4.0 spamd service
AV: Clamwin + Clamd service + sanesecurity defs : https://www.hmailserver.com/forum/viewtopic.php?f=21&t=26829

User avatar
SorenR
Senior user
Senior user
Posts: 4412
Joined: 2006-08-21 15:38
Location: Denmark

Re: Build Question for Martin

Post by SorenR » 2016-04-14 16:00

superman20 wrote:(Later Edit: CRT = C Runtime for those who aren't professional programmers...I try not use acronyms willy-nilly...sorry)
ACRONYM = Abbreviated Coded Rendition Of Name Yielding Meaning ...

And by the way... CRT = cathode ray tube ... or maybe I'm just too old :mrgreen:

In case you are not... http://electronics.howstuffworks.com/tv3.htm
SørenR.

Algorithm (noun.)
Word used by programmers when they do not want to explain what they did.

superman20
New user
New user
Posts: 29
Joined: 2015-03-05 03:10

Re: Build Question for Martin

Post by superman20 » 2016-04-14 16:09

jimimaseye, I might have more British in me than the normal American. BBC America is my favorite TV channel. :D

SorenR, I'm not as young and cool as I sound...My first computer program was on a TRS-80 Color Computer 2 from Radio Shack. The "monitor" was a CRT TV connected via an RF modulator. I also saved my programs on a cassette tape. :shock:

User avatar
SorenR
Senior user
Senior user
Posts: 4412
Joined: 2006-08-21 15:38
Location: Denmark

Re: Build Question for Martin

Post by SorenR » 2016-04-14 16:26

superman20 wrote:jimimaseye, I might have more British in me than the normal American. BBA America is my favorite TV channel. :D

SorenR, I'm not as young and cool as I sound...My first computer program was on a TRS-80 Color Computer 2 from Radio Shack. The "monitor" was a CRT TV connected via an RF modulator. I also saved my programs on a cassette tape. :shock:
My first "real" program was an inventory program for my then father-in-law-to-be (maybe) (never did thou) on a Sinclair ZX81...

I came across this just 5 minutes ago... http://gunkies.org/wiki/Installing_VM/370_on_Hercules. Brought out some fond memories of me getting a severe reprimand for "borrowing" a Pac-Man game from Weizmann Institute of Science over EARN to run with GDDM on our IBM VM/370... :mrgreen: That was my first (and only) encounter with "Hank" Nussbacher...
SørenR.

Algorithm (noun.)
Word used by programmers when they do not want to explain what they did.

User avatar
jimimaseye
Moderator
Moderator
Posts: 8960
Joined: 2011-09-08 17:48

Re: Build Question for Martin

Post by jimimaseye » 2016-04-14 17:49

SorenR wrote:
superman20 wrote:(Later Edit: CRT = C Runtime for those who aren't professional programmers...I try not use acronyms willy-nilly...sorry)
ACRONYM = Abbreviated Coded Rendition Of Name Yielding Meaning ...

And by the way... CRT = cathode ray tube ... or maybe I'm just too old :mrgreen:
CRT is an 'abbreviation', not an 'acronym'. Acronyms must be able to be said as a word (eg, NATO- "Nato"). Its a bit difficult to pronounce "Crt" in English..... but it might be something easy and meaningful in Danish. :wink: :lol:
5.7 on test.
SpamassassinForWindows 3.4.0 spamd service
AV: Clamwin + Clamd service + sanesecurity defs : https://www.hmailserver.com/forum/viewtopic.php?f=21&t=26829

User avatar
SorenR
Senior user
Senior user
Posts: 4412
Joined: 2006-08-21 15:38
Location: Denmark

Re: Build Question for Martin

Post by SorenR » 2016-04-14 18:21

jimimaseye wrote:
SorenR wrote:
superman20 wrote:(Later Edit: CRT = C Runtime for those who aren't professional programmers...I try not use acronyms willy-nilly...sorry)
ACRONYM = Abbreviated Coded Rendition Of Name Yielding Meaning ...

And by the way... CRT = cathode ray tube ... or maybe I'm just too old :mrgreen:
CRT is an 'abbreviation', not an 'acronym'. Acronyms must be able to be said as a word (eg, NATO- "Nato"). Its a bit difficult to pronounce "Crt" in English..... but it might be something easy and meaningful in Danish. :wink: :lol:
Can't do it in Danish either... Btw... Danish and English are more closely related than you think, so when you think a danish word sound like English... Well... Think again :mrgreen:

http://www.statsci.org/dansk/oldnorse.html
SørenR.

Algorithm (noun.)
Word used by programmers when they do not want to explain what they did.

Post Reply