Author Topic: Odin  (Read 14139 times)

lmotaku

  • Guest
Re: Odin
« Reply #15 on: March 19, 2013, 09:17:06 pm »
Thanks both of you. I know a bit about how dynamic link libraries work. Usually dlls work in the application folder or actual system locations, like C:\WINDOWS\System32 At least that's how Windows has always worked, so what you two are telling me isn't completely foreign to me. eCS seems to work in a similar way, which makes things a bit easier.

Doug Bissett

  • Hero Member
  • *****
  • Thank You
  • -Given: 1
  • -Receive: 62
  • Posts: 1466
  • Karma: +2/-2
    • View Profile
Re: Odin
« Reply #16 on: March 19, 2013, 10:41:26 pm »
Beside the Libpath there is also the beginlibpath and endlibpath which can be set (though are not technically environment variables) before launching an application. 

Theoretically, these should always work, but in practice, I have seen a couple of programs that ignore them. I don't remember which ones, but I think they may have been ports from linux. The only answer, that I know about, is to put the directory into the Libpath, and reboot.

Thanks both of you. I know a bit about how dynamic link libraries work. Usually dlls work in the application folder or actual system locations, like C:\WINDOWS\System32 At least that's how Windows has always worked, so what you two are telling me isn't completely foreign to me. eCS seems to work in a similar way, which makes things a bit easier.

As I pointed out before, OS/2 and WinNT (and up) are from the same roots, so there are similarities. Windows seems to be a bit more forgiving if you mix DLL versions though.

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 13
  • -Receive: 226
  • Posts: 3155
  • Karma: +59/-0
    • View Profile
Re: Odin
« Reply #17 on: March 20, 2013, 03:17:58 am »
Be aware that OS/2 also has a 8.3 name limit on DLLs with the .3 having to be .dll. It's a shame as it limits things but...

lmotaku

  • Guest
Re: Odin
« Reply #18 on: March 20, 2013, 03:41:35 am »
What..? D: Random. But thanks for the insight Dave. This is normal for old systems and their old FS, just forgot all about how "dumb" pre:NT4 was concerning file names.
« Last Edit: March 20, 2013, 03:44:46 am by Larry »

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 13
  • -Receive: 226
  • Posts: 3155
  • Karma: +59/-0
    • View Profile
Re: Odin
« Reply #19 on: March 20, 2013, 08:04:14 am »
What..? D: Random. But thanks for the insight Dave. This is normal for old systems and their old FS, just forgot all about how "dumb" pre:NT4 was concerning file names.

While the native filesystem is FAT with its 8.3 limit and DOS and Win3.1 can only see 8.3 names using any long file name aware file system is enough to enable long file names for everything besides DLLs, the DLL 8.3 limitation is a kernel limitation which didn't exist in ver 2.0 but seems to have been added to reduce memory usage. Remember this system could be crammed into 4 MBs of memory up until Warp V3 (16 MB for V4 and realistically double to be useful).

lmotaku

  • Guest
Re: Odin
« Reply #20 on: March 20, 2013, 03:01:21 pm »
I feel like I'm in a classroom. That's not a bad thing, you are very insightful.

Paul Smedley

  • Hero Member
  • *****
  • Thank You
  • -Given: 62
  • -Receive: 127
  • Posts: 886
  • Karma: +79/-0
    • View Profile
Re: Odin
« Reply #21 on: March 21, 2013, 09:33:51 am »
Be aware that OS/2 also has a 8.3 name limit on DLLs with the .3 having to be .dll. It's a shame as it limits things but...

Not sure it's true the DLL extension has to be .dll - python modules are DLL's but use the .pyd extension.....

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 13
  • -Receive: 226
  • Posts: 3155
  • Karma: +59/-0
    • View Profile
Re: Odin
« Reply #22 on: March 21, 2013, 04:28:51 pm »
Might just be a requirement of the kernel loader

lmotaku

  • Guest
Re: Odin
« Reply #23 on: March 22, 2013, 02:19:01 pm »
Couldn't software load a dll manually and ignore this? Unless it of course is a library used in multiple programs? So if you write your own program using your own library(.dll), it could have 20 characters if you wanted, it just can't be part of the system? :P Also, unrelated, but thanks Paul, your ports have been very helpful and made using OS/2/eCS a lot better than default.

Andy Willis

  • Full Member
  • ***
  • Thank You
  • -Given: 0
  • -Receive: 12
  • Posts: 223
  • Karma: +2/-0
    • View Profile
Re: Odin
« Reply #24 on: March 23, 2013, 02:26:01 am »
Couldn't software load a dll manually and ignore this? Unless it of course is a library used in multiple programs? So if you write your own program using your own library(.dll), it could have 20 characters if you wanted, it just can't be part of the system? :P Also, unrelated, but thanks Paul, your ports have been very helpful and made using OS/2/eCS a lot better than default.
The 8.3 name restriction on DLLs is not overcome in your own programs... when porting from Linux for instance we have to sometimes use shorter names.  The restriction is in the loader.  There is a driver that was part of Odin that will allow longer DLL names but the driver can potentially cause issues on the system.