LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 03-12-2021, 04:41 AM   #16
business_kid
LQ Guru
 
Registered: Jan 2006
Location: Ireland
Distribution: Slackware, Slarm64 & Android
Posts: 16,408

Rep: Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338

4004? That was early! Machine code back then. My boss back in the 1980s wrote himself a card index with instructions and assembler instructions to program.

Anyhow, with slackware, you needn't worry Alien & ponce use the same optimizations, the same libraries. Maybe later versions on current but ponce just does current. Anyhow they lurk here but are both well able to speak up for themselves.

So ponce & Alien's libraries are binary compatible on x86_64. If they're compiled against the same slackware version they are version compatible. With Current, admittedly, that's a moving target. It's only on 32bit Arm builds that you are likely to run into binary incompatibility issues, and even then you have to try hard to achieve it.

Anyhow, They're the software guys, not me. I don't agree with your wxwidgets conjecture.
 
Old 03-13-2021, 04:54 PM   #17
brodo
Member
 
Registered: Jan 2004
Location: Poland, Poznan
Distribution: Slackware current 32 / 64
Posts: 406

Rep: Reputation: 30
I've just successfully compiled today's Kicad 5.99 and a Ngspice-34 on my SW-64-current.
Of course I used Ponce's latest script for Ngspice for SW-current.

Last edited by brodo; 03-13-2021 at 05:08 PM.
 
Old 03-14-2021, 01:30 AM   #18
ponce
LQ Guru
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 7,118

Rep: Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192Reputation: 4192
Quote:
Originally Posted by brodo View Post
I've just successfully compiled today's Kicad 5.99 and a Ngspice-34 on my SW-64-current.
Of course I used Ponce's latest script for Ngspice for SW-current.
TBH I haven't modified ngspice in the fork for current: I think it has been patched on SBo by the maintainer following the hints from selfprogrammed.
 
Old 03-14-2021, 09:07 PM   #19
selfprogrammed
Member
 
Registered: Jan 2010
Location: Minnesota, USA
Distribution: Slackware 13.37, 14.2, 15.0
Posts: 635

Original Poster
Rep: Reputation: 154Reputation: 154
I have been gathering evidence that the conjecture is true.

Determining the conditions under which a wxWidget library will be binary incompatible with a wxWidget program is clouded because they never get specific about the problem.
I am ignoring the binary incompatibility of windows vrs unix vrs Mac, and the like, because that is binary incompatible for other reasons already.

wxGTK is incompatible if detecting GTK2.0 differs. Code produced differs in handling TAB expansion, as GTK2 will handle TAB itself, but GTK needs a helper function.

wxX11 seems to be incompatible with wxGTK, in that the headers detect and generate different functional defines for some functionality.

Several forums have mentioned that the wxWidgets library should be compiled with the program and then statically linked to it.
This is one way to keep decisions made in the wxWidgets headers compatible.

Finding if two wxWidget libraries are compatiblehttps://forums.wxwidgets.org/viewtopic.php?t=36780.
Quote:

// NB: This file contains macros for checking binary compatibility of libraries
// in multilib builds, plugins and user components.
// The WX_BUILD_OPTIONS_SIGNATURE macro expands into string that should
// uniquely identify binary compatible builds: i.e. if two builds of the
// library are binary compatible, their signature string should be the
// same; if two builds are binary incompatible, their signatures should
// be different.
//
// Therefore, wxUSE_XXX flags that affect binary compatibility (vtables,
// function signatures) should be accounted for here. So should compilers
// and compiler versions (but note that binary compatible compiler versions
// such as gcc-2.95.2 and gcc-2.95.3 should have same signature!).
The OS variations are handled by the top part of that file.
The more troublesome part of that file is near the bottom.
I do not know what options are checked here.
Every option that is checked here would need to be mentioned in the dependency requirements
associated with a downloaded binary.

Quote:
// Use this macro to check build options. Adding it to a file in DLL will
// ensure that the DLL checks build options in same way wxIMPLEMENT_APP() does.
#define WX_CHECK_BUILD_OPTIONS(libName) \
static struct wxBuildOptionsChecker \
{ \
wxBuildOptionsChecker() \
{ \
wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \
libName); \
} \
} gs_buildOptionsCheck;
It does not matter if Alien and Ponce have settled on some common settings.
Without knowing exactly what wxWidgets is sensitive to in its environment detection
in the headers, it is hard to even detect compatibility.

You cannot prove compatibility by simplistic testing or one guy successfully compiling.
The problem does not show up at compile-time. You would have to exercise and run-time test
EVERY function in the library to prove that it is binary compatible with a user program.

If the user installs a downloaded library. They can easily forget and later try to compile themselves
a program that uses wxWidgets. I cannot yet determine what settings and options they need to check
to ensure that the program they compiled will be binary compatible with the downloaded library.

Unlike every other library and installed headers, which define static and predictable header structures,
the wxWidgets headers have many #if detections and they are willing to conditionally insert values into enum,
conditionally insert fields into structures, and conditionally define functions and other items.
This is based on a short examination of the headers.
A quick count shows 714 uses of #if in the 700+ wxWidget header files, and I have probably looked at 10 to 20 #if in 6 header files so far.
 
Old 03-15-2021, 04:57 AM   #20
business_kid
LQ Guru
 
Registered: Jan 2006
Location: Ireland
Distribution: Slackware, Slarm64 & Android
Posts: 16,408

Rep: Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338Reputation: 2338
OK. I'm just glad that my days with Kicad are over, and you're making me even happier.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] the question of ngspice.I confused! genime Debian 7 03-16-2011 06:39 AM
Wanted help in installing ngspice on Ubuntu 9.04 RockerAsh Linux - Software 1 09-01-2010 02:51 AM
Trying to install ngSPICE, please help John-Z Linux - Software 3 08-18-2008 03:02 PM
where is ngspice abd_bela Debian 3 08-18-2008 02:43 PM
replacing spice and nutmeg with ngspice Berticus Linux - Software 1 08-18-2008 02:26 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 12:44 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration